所有产品

和记娱乐CUDA 矩阵转置

  】这个是个典型的利用 shared memory 来使内存读写加速的例子, CUDA SDK 中有个 transpose_native, 是采用比较原始的办法, 将每列的第一个元素读出来凑成一行, 这个办法显而易见是比较的慢的,比上面这个程序要慢10倍以上.

  1)在X86平台上由于 cache line 可以产生同样的效果, 但是GPU中为了放更多的运算单元, 并没有制造很多的 Cache Line, 但是查看nvidia 的GPU,发现每次数据传输的基本数量是 256bit, 或者 512bit, 假设是 512bit, 则每次是传输 16 个单精度浮点数, 所以对应的你也至少要每次出来一行中的 16 个单精度浮点数据, 才能充分利用显存带宽