2012-03-06 92 views
3

OpenCL1.1中有没有懒惰的策略来处理数据传输?我知道CUDA有这种策略,因此您可以分配比设备上更多的内存。OpenCL1.1上的懒惰策略

+1

您能举一个用法示例吗?我无法想象为什么会这样做。 – LucasB 2012-03-08 23:23:58

+0

例如,您有主机内存中链接的结构列表,但没有按顺序排列,因为在计算过程中它已被更新。那么您应该将部分列表发送给GPU,但是所需的信息可能已经上传或未上传。因此,稍后您可以决定获取更多的列表。懒惰策略让您有机会根据需要上传数据。 – Damoon 2012-03-14 09:41:06

回答

4

我对OpenCL并不熟悉,但发现相关的NVIDIA forum discussion

还以为我对CUDA的情况下,任何人提及回复遇到后...

我不认为有在本地CUDA的方式比物理设备上可用的分配更多的内存。事实上,即使在较大的卡上,也不能分配一个大的连续阵列,因为卡具有单独的存储体,例如,回到C1060的日子里,我记得在3GB卡上达到了1.5GB左右的限制。您能否提供一些关于CUDA允许如此大量分配的含义的细节?

如果您使用ArrayFire(或Jacket),他们有virtual memory的基本思想是:如果你有很多是比总量更可在卡上少分配的,那么只保留最重要出来的设备上而其他作品则保存在主机上直到需要。