2012-10-17 85 views
2

我正在使用OpenCL的原子操作。相同的代碼正在爲英特爾CPU工作,但在Nvidia GPU上發生錯誤。我已經爲32位和64位兩者啓用了Atomics。OpenCL中不支持的原子操作

 int cidx=idx%10; 

    int i=1; 
    C[idx]=In1[idx] & In2[idx]; 
    atomic_add(R,i); 

這只是整體代碼的一部分。它給出的構建錯誤「不支持的操作」在Nvidia Quadro GPU上運行,而在Intel i3,Xeon和AMD處理器上工作得很好。

+0

R是否爲volatile並且是本地或全局工作空間中的整數指針? – KLee1

回答

0

atomic_add沒有出現在OpenCL 1.0中,它是在規範的後期修訂中添加的。您可能正在運行符合不同OpenCL版本的兩種不同實現。