GPU程式設計
下列何者是CUDA的__syncthreads()的作用?
- A讓GPU的所有執行緒跨區塊互相等待
- B讓同一區塊的所有執行緒等待到全部抵達該處,並使此前對共享記憶體的寫入可被看見
- C使CPU與GPU的時脈同步
查看答案與解析
正確答案:B. 讓同一區塊的所有執行緒等待到全部抵達該處,並使此前對共享記憶體的寫入可被看見
在使用共享記憶體的處理中,必須先讓某個執行緒的寫入完成,其他執行緒才能讀取其寫入的值。__syncthreads()會讓區塊中的所有執行緒等到全部抵達此處為止,因此可以保證例如「全員都將資料讀入共享記憶體後,才開始計算」這樣的順序。可互相等待的只限於同一區塊的執行緒。
- A. 無法進行跨區塊的同步。
- B. 正確。這是區塊內的屏障同步。
- C. 並不是用來校準時脈的功能。