Belleği, GPU'nun Çekirdek içindeki Global bellekte dinamik olarak ayırmak mümkün mü?
Cevabımın ne kadar büyük olacağını bilmiyorum, bu nedenle cevabın her bölümü için bellek ayırmanın bir yoluna ihtiyacım var. CUDA 4.0, RAM'i kullanmamıza izin verdi ... iyi bir fikir mi yoksa hızı düşürecek mi?GPU'da Dinamik Ayırma Belleği
5
A
cevap
10
Çekirdek içindeki malloc kullanmak mümkündür.
__global__ void mallocTest()
{
char* ptr = (char*)malloc(123);
printf(“Thread %d got pointer: %p\n”, threadIdx.x, ptr);
free(ptr);
}
void main()
{
cudaThreadSetLimit(cudaLimitMallocHeapSize, 128*1024*1024);
mallocTest<<<1, 5>>>();
cudaThreadSynchronize();
}
will output:
Thread 0 got pointer: 00057020
Thread 1 got pointer: 0005708c
Thread 2 got pointer: 000570f8
Thread 3 got pointer: 00057164
1
CUDA 4.0 itibaren c malloc
ve free
C++ yerine new
ve delete
operatörlerini kullanmak mümkün olacak: NVIDIA CUDA kılavuzundan alınmıştır aşağıdakileri kontrol edin.
İlgili konular
- 1. C++: Sınıf nesnesi türetildiğinde dinamik belleği ayırma
- 2. CUDA belleği __device__ işlevine ayırma
- 3. Bu dinamik ayırma ne yapar?
- 4. İki farklı vektör için dinamik paylaşımlı bellek ayırma kullan
- 5. bellek ayırma
- 6. C++ string + = operatör belleği sonucu
- 7. Belleği Mac OS X derlemesinde nasıl dinamik olarak ayırıyorsunuz?
- 8. C# 3d Uygulama bellek ayırma
- 9. SQL Server CLR Bellek Ayırma
- 10. Dinamik bellek ayırma - ilkel türlerin varsayılan olarak başlatılması C++
- 11. Montaj çalışma zamanı bellek ayırma
- 12. Orta ölçekli bir projede g ++ hatası "cc1plus.exe: 838860800 bayt ayırma belleği yetersiz" nasıl tanınır?
- 13. Valgrind "yığın ayırma" diyor "yığın ayırma" diyorum
- 14. Android Önyükleme belleği artışı
- 15. Python belleği sızıyor mu?
- 16. Neden node.js belleği yayınlamıyor?
- 17. Kıvılcım çalışanı belleği
- 18. cURL döngü belleği büyümesi
- 19. Celery belleği serbest bırakmıyor
- 20. MySQL Kullanılabilir belleği kullanmıyor
- 21. Flask belleği serbest bırakmıyor
- 22. oturum belleği IE'de çalışmıyor
- 23. ".exe" + ofsetinden okuma belleği?
- 24. Ön belleği önbellekleme
- 25. HSQLDB tüm belleği yiyor
- 26. Unicorn belleği ayıramıyor
- 27. gcc bellek ayırma sorunu - arabellek taşması saldırısı
- 28. Yığın ayırma başarısız ve yığın ayırma başarılı! Mümkün mü?
- 29. Tamsayı iki bayta ayırma
- 30. Unicode bitişik karakterleri ayırma
@ scatman: Bir çekirdek içinde malloc çağırdıktan sonra tahsis edilen bellek cihazda olacak sanırım ... Doğru muyum? – Manolete
Bir işlemci, 2048 çekirdek gtx980 kadar hızlı malloc olamadığından, gpu'ya ayırdığından şüpheleniyorum. Aksi takdirde sadece entegre gpus için ayrık değil. –