Adaboost

Adaboost指的是一种框架,可以讲若干个弱分类器级联成一个强分类器。对于这些弱分类器的选择上并没有任何限制,同时具有分类错误率上界随着训练增加而稳定下降,一般不会过拟合等的性质,应该说是一种很适合于在各种分类场景下应用的算法。

Read More

SignalTap的使用

  1. 打开SignalTap后在setup中设置需要跟踪查看的变量;
  2. Filter选择pre-synthesis, named一般不好用,所以在lookin中选择变量所在的模块,点击list,找到后双击勾选到右侧方框;
  3. 右侧的时钟模块勾选系统计算所依赖的CLK;
  4. Data中的Sample depth表示的是需要查看多长的波形,选择过大会导致FPGA资源不够用,编译无法通过;
  5. 设置好之后,在触发条件处勾选上升沿或下降沿出发,当选择两个以上的变量的触发条件时,表示的是两个条件同时发生才会记录波形;
  6. 之后编译FPGA程序,点击SOFmanager的 device programmer,把程序下载到芯片;
  7. 下载DSP程序,运行,在SignalTap中点击Run analysis。

    Read More

一个DSP的工程中往往有很多的.c执行文件,但是具体的执行顺序单从程序上的互相调用来看是理不清楚的,下面以一个具体的工程为例对DSP中工程的执行顺序进行分析,帮助更好的理解其整个芯片的运行机制。如有理解不对之处,敬请批评指正。

Read More

Cuda极大程度的方便了我们利用GPU并行处理来加快自己程序的运行速度,但是大多情况下我们的程序是极为庞大的一个项目,只是利用cuda来加快其中某一块算法的运行效率,所以很多情况下是cpp文件来调用cu中的kernel函数。虽然cuda5.0之后可以直接从vs中生成现成的cuda项目,但是像这种通过cpp来调用cu文件的项目还是需要我们自己来进行配置的。

Read More

  1. Cuda中对内核函数的调用<<< m , n >>>,m表示线程块的个数,n表示每个线程块的线程数, m个线程块构成一个线程格。M和n可以是一维的或者二维(三维)的,即使n是一维的,那么m也可以是二维的。

    Read More

sm流处理器簇对blocks的调度策略

在cuda中,GPU中的SM(GTX650M有2个sm处理器)被GPU调度器把线程块逐个分配到SM上,每个SM同时处理这个被分配的线程块,但是每次每个时刻都只能处理一个warp线程束,由于有时会存在内存读取等操作导致等待,那么SM会转而处理其他的warp来掩盖这个延迟。

Read More