Nvidia似乎在嘲讽Cuda 4.0允许程序员在CPU和GPU之间使用统一的内存模型。这不会取代为了获得最佳性能而在GPU和CPU中手动管理内存的需求,但它是否允许更简单的实现方式进行测试,验证并优化(手动管理GPU和CPU内存)?我希望听到评论或意见:)有关Cuda 4.0和统一内存模型的问题
2
A
回答
3
从我读到的,最重要的区别是,如果你有2个或更多的GPU,你将能够将存储器从GPU1转移到GPU2而不需要接触主机RAM。您还可以在主机上仅使用一个线程来控制2个GPU。
3
嗯,这似乎是个大新闻!由NVIDIA自己的工程师构建的thrust库已经给你一些风味。您只需将=符号(无需调用cudaMalloc和cudaMemcpy等)将数据从RAM移动到GPU的DRAM。所以推力使得CUDA-C更像'只是C'。
也许他们会在将来将它集成到CUDA-API中。请注意,在后面的程序将是相同的(并且将永远保持相同),但对于程序员来说是非常容易的。 (我不喜欢)
编辑:CUDA 4.0已经宣布,推力将与它整合。
0
“统一”内存仅指地址空间。主机和设备指针从相同的64位地址空间分配,因此任何给定的指针范围在整个过程中都是唯一的。因此,CUDA可以从指针推断指针范围“属于哪个设备”。
重要的是不要将地址空间与读/写这些指针范围的能力混淆。 CPU将无法取消引用设备内存指针。我相信,在支持统一地址的平台上,所有主机分配都会默认映射,所以GPU可以取消主机分配。
注意:Windows Vista/Windows 7上的默认驱动程序型号不支持此功能。
相关问题
- 1. 关于Java内存模型的问题
- 2. CUDA内存分配和访问问题
- 3. cuda统一内存和指针别名
- 4. cuda nbody模拟 - 共享内存问题
- 5. CUDA 4.0运行时问题
- 6. 保存关联模型的问题
- 7. 问题调用模板CUDA内核
- 8. CUDA内存管理/类问题指针
- 9. 关于Linux内存类型问题
- 10. 关于Node.js的问题SChema和模型
- 11. XNA 4.0模型纹理问题
- 12. Cuda的2D内存分配和复制问题
- 13. 关联模型的问题
- 14. CUDA Toolkit 4.0和Nsight 2.0正式发布的问题
- 15. 测量CUDA程序和CUDA内核耗用时间的问题
- 16. 问题有关C#4.0的泛型协方差
- 17. 存储库模式问题和泛型?
- 18. 问题,选择和相关模型
- 19. 诊断CUDA内核问题
- 20. Javascript关闭和内存问题
- 21. OpenCL/CUDA中每个内存访问类型有多少内存延迟周期?
- 22. 问题有关内存使用
- 23. 关于CUDA内存访问的简短提问
- 24. CUDA和C++的问题
- 25. 模型关系问题
- 26. 模型关联问题
- 27. Rails模型关联问题
- 28. 投票系统中的模型问题
- 29. 有关模型更改和通知的设计问题 - 可可
- 30. 问题有关协会和模型on Rails的
推力覆盖赋值运算符以在下面执行cudaMemcpy。如果不通过主存储器从一个GPU复制到另一个GPU - 换句话说,您必须执行两个副本才能将数据从一个GPU传送到另一个GPU。 CUDA 4.0消除了这个限制。 – 2011-03-05 21:06:06
酷不知道,听起来很壮观:) – tim 2011-05-17 09:44:49