Chinese, Simplified subtitles

← CUDA DMA

Get Embed Code
2 Languages

Showing Revision 4 created 05/20/2013 by Michael Xiao.

  1. 所以CUDA DMA 是一个模板库,
    被设计来让使用共享内存更容易
  2. 同时实现高性能。
  3. 现在为了使用CUDA DMA,程序员为需要加载或存储的
    每个共享内存缓冲区定义CUDA DMA 对象,
  4. 很酷的事是那个 CUDA DMA 让你清楚地描述该数据的传输模式。
  5. 所以,例如,您可能会传输一个长的序列化的内存块,
  6. 你可能会传输跨步的内存块,
  7. 或者你可能会做某种内存的间接访问,
  8. 如你将在一个稀疏矩阵表示中找到的。
  9. 就像借助于CUB,从我们对每个线程实际进行的处理
    来解耦传输模式,
  10. 从而实现那种传输模式,这么做有几个好处并且
  11. 提高了可编程性因为现在代码更简单。
  12. 你已经总结了从你内核中的实际计算
    进行单独的传输的所有逻辑。
  13. 它提高可移植性,因为你可以让 CUDA DMA 忍者或CUB忍者
  14. 为你的具体情况开发这些不同传输模式的最佳实现方式
  15. 然后为你把它们打包在一个库中,
  16. 因为那些 CUDA 忍者擅长他们所做的,而你得到高性能。
  17. 你将实现较高的 DRAM 内存带宽,
  18. 你要对没有太多占有率的内核隐藏全局内存延迟时间。
  19. 希望这将带来更好的编译器生成的代码。
  20. 正如我说过的,这些都是CUB产生的好处,
    它处理整个循环,
  21. 从全局内存取来数据以及对它进行计算;
    同样地,CUDA DMA,
  22. 它只处理这种循环的顶端部分,它将内存带到共享内存中,
  23. 然后你要自己对它做运算,
  24. 所以这些都是两种方法的好处。