比方說,我有以下的內核:傳遞數據
__kernel void classify_data_points(__global float* data,
__local float* datasegment)
{
int gid0 = get_global_id(0);
int lid = get_local_id(0);
dataSegment[lid] = data[gid];
}
正如看見,我想借此從全局內存數據到本地內存。本地內存的大小是否同時執行此操作很重要?我的意思是,dataSegment數組大小是64字節。然後,通過這條線'dataSegment [lid] = data [gid]',我可以假設整個64字節的存儲空間是由從全局存儲器獲取的數據填充的嗎?(全局存儲器中有足夠的數據)或512字節長的本地存儲器,我們能說同樣的話嗎?
如果您的工作組不是多個數據,使用async()函數是最佳選擇。對於普通副本也是有效的,所以應該在任何情況下使用。 – DarkZeros