是";cudaMallocManaged";慢于;库达马洛克;?
我下载了CUDA6.0RC,并在我的应用程序中使用“cudaMallocManaged”测试了新的统一内存。但是,我发现这个内核速度变慢了 与cudaMallocManaged(~0.63)相比,使用后跟更快(~0.56)。这是预期的吗 cudaMallocManged的一个主张是“更快地原型化cuda内核”,所以我想知道哪一个是应用程序性能方面更好的选择 谢谢。是";cudaMallocManaged";慢于;库达马洛克;?,cuda,gpgpu,nvidia,hpc,Cuda,Gpgpu,Nvidia,Hpc,我下载了CUDA6.0RC,并在我的应用程序中使用“cudaMallocManaged”测试了新的统一内存。但是,我发现这个内核速度变慢了 与cudaMallocManaged(~0.63)相比,使用后跟更快(~0.56)。这是预期的吗 cudaMallocManged的一个主张是“更快地原型化cuda内核”,所以我想知道哪一个是应用程序性能方面更好的选择 谢谢。cudamalocmanaged()并不是为了提高应用程序的速度(除了少数例外或特殊情况,下面建议使用一些) 今天的统一内存和cuda
cudamalocmanaged()
并不是为了提高应用程序的速度(除了少数例外或特殊情况,下面建议使用一些)
今天的统一内存和cudamalocmanaged
的实现将不会比熟练的CUDA程序员编写的智能代码更快。机器(cuda运行时)并不比程序员更聪明cudamalocmanaged
不会神奇地使PCIE总线或一般机器架构限制消失
快速原型是指编写代码所需的时间,而不是代码的速度
cudaMallocManaged
在以下情况下,精通cuda的程序员可能会感兴趣:
cudaMallocManaged
可能比单纯或低效的零拷贝方法更快cudaMallocManaged
可能会让不熟练的CUDA程序员感兴趣,因为它可以让你在可能更简单的学习曲线上用CUDA来湿脚。(但是,请注意,单纯使用cudamalocmanaged
可能会导致CUDA内核运行速度低于预期,请参阅和。)
尽管评论中提到了Maxwell,但CUDA UM将在某些设置下为某些GPU提供Pascal一代GPU的主要新功能。特别是,这些设置中的统一内存将不再局限于可用的GPU设备内存,即使在内核运行时,内存处理粒度也将下降到页面级别。您可以阅读更多信息。如果主机内存被固定,是的,它预计会比托管内存快。但是我没有使用任何固定内存。如何分配主机内存?我复制了上面的内核调用部分和分配部分以供参考。谢谢,但是如何分配主机内存(
*.data
)?谢谢你的详细回复。我想在我的情况下Cudamaloc更适合。非常感谢……如果我没有弄错的话,Maxwell体系结构应该为统一内存提供硬件支持,因此cudamalocmanaged()
可以在该体系结构上提供更好的性能。我的陈述主要是为了反映统一内存今天的功能。我们有理由假设未来的UM进化将是:1。利用GPU和主机上较新的硬件体系结构,以及2。进一步模糊了熟练的CUDA程序员可以或应该处理的内容与机器(CUDA运行时)可以或应该完成的内容之间的界限。100%同意。我只是做个笔记,因为你的回答没有提到麦克斯韦。