2011-04-15 88 views
1

這可能嗎? 我想在一個內核中定義一個共享內存數組.. 然後我需要在不同的內核中使用這些值。CUDA:在不同內核之間使用共享內存

我想聲明

extern __shared__ float sharedMem[]; 

的所有功能外,然後在一個內核寫信給它,並試圖訪問它在不同的內核。 sharedMem是陣列在第一個內核中寫入正確,但是當我嘗試在第二個內核中訪問它時,值都是0.所以我猜測這不起作用或者我做錯了什麼。

有人能幫我解決這個問題嗎?

回答

2

你是對的,共享內存不會在內核調用中持續存在。相反,您必須使用全局內存(或紋理內存)並將其加載到每個內核調用的共享內存中。

+0

謝謝!多數民衆贊成我最終做..使用紋理內存.. – lokstok 2011-04-18 20:38:39