技术开发 频道

CUDA开发实战:C#代码中使用DLL

  代码示例

  这里的示例显示了相同函数CUDA(GPU),非托管本地代码(CPU),托管.NET代码(顺序的)和.NET并行版本的执行时间。

  你可以修改的配置参数是数组的大小,每个线程循环的次数,CUDA块大小和为求平均值的测试次数。

  块大小应该比数组大小小一些,以便利用更多的多处理器,建议值是256或512(大多数支持CUDA的设备的最大值),你可以使用CUDA SDK中的CUDA分析器检查占有率(应该是1或接近1)。

  这里的CUDA内核非常简单,没有使用任何线程同步和共享内存,实际上,所有线程是完全独立运行的,当为每个数组元素配有足够的计算能力时,性能会得到极大的提升。

  你可以使用更少的循环检查结果,并行for()的用法通常是由数组大小决定的,因此,对小数组它通常是无效的。

  下面是我的配置了旧Nvidia GPU的笔记本电脑计算能力为1.1的结果:

CUDA开发实战:C#代码中使用DLL

0
相关文章