Chinese, Simplified subtitles

← cs344_unit2_26_l_编写有效的程序

Get Embed Code
4 Languages

Showing Revision 1 created 05/23/2013 by Lian7.

  1. 下次作业中,我们将实现一些非常棒的图像模糊技术。
  2. 你现在已足够了解,你可以
  3. 在大规模并行GPU上实现这个程序,你很快就可以得到正确答案。
  4. 但我们可以做得更好。
  5. 现在我们有开始讨论编写有效CUDA并行程序的所有材料。
  6. 目前我只会讲高级策略。
  7. 之后我们会用一整个单元讨论具体的优化方法,
  8. 来帮助你真正地挤出GPU的最大性能。
  9. 所以把这看成一个预习,涉及一些很重要的高级内容,
  10. 在你编写GPU程序时,必须要牢记。
  11. 第一个要牢记的是GPU有非常惊人的计算功率。
  12. 一个高端GPU每秒可以进行超过3万亿次的数学计算。
  13. 你有时会看到这个写作T FLOPS。
  14. 一个 FLOPS代表每秒浮点运算。
  15. T FLOPS是兆FLOPS,少数高端GPU每秒可以进行超出3万亿次浮点运算。
  16. 但是如果在系统从内存获取运算对象时,进行数学计算的算术单元
  17. 需要花时间等待,那么所有计算能力都被浪费了。
  18. 所以我们需要记住的第一个策略是最大化算术强度。
  19. 算术强度基本上是,在我们访问的单位内存上,我们可以做的数学计算量。
  20. 所以我们可以通过让分子变大或分母变小,
  21. 来增加算术强度。
  22. 这对应于最大化每个线程的工作量或最小化每个线程的内存。
  23. 让我们更精确地表达我们在这里的意思。
  24. 我们真正讨论的是最大化
  25. 每个线程的有用计算操作数。
  26. 这里我们真正关心的是最小化每个线程在内存上花的时间。
  27. 我非常谨慎地措词,因为我们关心的不是内存操作的总数,
  28. 不是线程执行程序过程中
  29. 进出的内存总量。
  30. 而是我们这么做需要花多长时间。
  31. 有很多方式可以减少内存访问的时间。
  32. 这就是我们现在要讨论的。