2016-03-27 37 views
0

Çekirdeğimde bir koşul olup olmadığını kontrol edip doğruysa diziyi bir diziye ekliyorum. Aşağıdaki atomik olarak yapmam gerekiyor.Cuda işlemleri atomik olarak gerçekleştirir

if(condition){ 
    arr[*index_ptr] = tid; 
    (*index_ptr)++ 
} 

Temelde, ben hiçbir iki konu dizisinde aynı pozisyonda kendi Tıd'ler yazma bunu istiyorum.

Bunu yapmanın basit bir yolu var mı? CUDA'da kilitlerin zor olduğunu duydum.

cevap

1

Cuda kütüphanesi atomik fonksiyonlara sahiptir. Sen

Cuda Programming Guide

Bu fonksiyon int için bir işaretçi alır veya yüzer ve başka int veya şamandıra buna eklemek için (tip inanıyorum aynı olmalıdır)) (atomicadd arayan olacaktır. Ayrıca atomik işlemden önce işaretçinin değerini rahatça döndürür.