我正在使用CUDA编写的程序出现问题。我有一个输入数组和输出数组,我需要将其复制到设备内存。问题在于两个阵列太大而无法放入设备内存。我现在正在做的是拆分输入和输出数组,并为这两个部分按顺序运行内核。
为了使这种方法起作用,我使用了一个中间数组,因为cudaMemcpyFromArray和cudaMemcpyToArray只能用于纹理内存。这会导致不必要的内存复制操作。有谁知道更有效的方法?CUDA中大量输入的高效memcpy?
0
A
回答
0
如果数组的一个段上的操作独立于数组的另一个段上的操作,则可以使用异步存储器复制。这将帮助您在计算时来回复制事物。来自cuda c编程指南:
某些函数调用是异步的:在设备完成所请求的任务之前,将控制返回给主机 线程。它们是:
- 内核启动;
- 设备到设备的内存拷贝;
- 64 KB或更少内存块的主机到设备内存副本;
- 由带有Async后缀的函数执行的内存副本;
- 内存集函数调用。
希望它能帮助兄弟。你也可以考虑使用大米编码来压缩数组,以使它们合适。
1
相关问题
- 1. CUDA中的高效图像金字塔?
- 2. postgresql中的高效增量插入
- 3. 大型矢量最高效的VHDL?
- 4. CUDA的memcpy(dst,src,0)可能写入* dst吗?
- 5. 使大的Mysqli插入效率更高
- 6. 高效的批量数据插入
- 7. 渲染大量单个像素高效?
- 8. CUDA最大数量管理
- 9. 更改导航栏项的高度以匹配大量输入
- 10. 提升等效的memcpy?
- 11. 检测输入中的最大数量
- 12. 处理“大量输入”中的“Kill”
- 13. 将大文件(最多2GB)有效地传输到CUDA GPU?
- 14. 在Android AutoCompleteTextView中高效加载大量数据(大约5000)
- 15. 使用不同数量的输入在MS SQL Server中进行高效计算
- 16. Cuda的不修改输入,如果网格尺寸太大
- 17. 大型矢量空间高效的C++矢量分配器?
- 18. 如何在含有大量数据的NSScrollview中高效滚动?
- 19. 如何在Python中高效地运行大量的子进程?
- 20. 在CUDA内核memcpy调用中使用array [i] [j]
- 21. 如何在CUDA中高效地打包比特?
- 22. Python:高效的bytearray增量
- 23. 通过大量的输入通过Ajax
- 24. Ember全局变量的输入大小
- 25. 在jQuery中,如何高效地添加大量元素?
- 26. Matplotlib:如何在3D中高效地绘制大量线段?
- 27. 在javascript中测量websockets数据输入/输出的大小
- 28. 等效的memcpy不同的结果?
- 29. 蟒蛇中的高效张量收缩
- 30. 高效的数据导入?