通过OpenCL(GPU)处理文件和流

时间:2011-07-05 15:06:37

标签: opencl gpu-programming

我想写一个来自OpenCL内核的文件..类似于C中的fwrite()..

是否有类似的功能..或者我要从GPU写入文件我需要做什么?

2 个答案:

答案 0 :(得分:5)

这是不可能的。这不仅是数百个线程的同步问题,内核在GPU或加速卡等特殊设备上运行。这些卡没有访问磁盘和其他IO。

数据只能从内存中发送和接收,CPU可以执行复杂的IO。

一般情况下:GPU(OpenCL设备)只能从内存中获取数据并在本地执行某些操作。信号到达CPU后OpenCL内核完成后,数据从GPU中获取GPU是一个纯粹的从属设备,无法控制其环境。

答案 1 :(得分:4)

不,它不可用。如何以安全的方式处理1000个线程写入同一文件?这将极大地减慢计算速度。 Printf仅用于调试。

因此,您需要将信息发送给主机,让主机处理正确的文件写入。发送数据的最佳方法取决于您的内核/算法。