Czy możliwe jest dynamiczne przydzielanie pamięci na globalną pamięć GPU wewnątrz jądra?
Nie wiem, jak duża będzie moja odpowiedź, dlatego potrzebuję sposobu na przydzielenie pamięci dla każdej części odpowiedzi. CUDA 4.0 pozwala nam korzystać z pamięci RAM ... czy to dobry pomysł, czy zmniejszy prędkość?Dynamiczne przydzielanie pamięci na GPU
5
A
Odpowiedz
10
Możliwe jest użycie malloc wewnątrz jądra. sprawdź następujące elementy, które pochodzi z przewodnika NVIDIA CUDA:
__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
Od CUDA 4.0 będzie można używać new
i delete
operatorów z C++ zamiast malloc
i free
od C.
Powiązane problemy
- 1. Dynamiczne przydzielanie stałej pamięci w CUDA
- 2. ES6 rozpad, dynamiczne przydzielanie
- 3. Maksymalne przydzielanie pamięci na procesorze OpenCL
- 4. Przydzielanie pamięci w C++
- 5. C++ Przydzielanie pamięci na stercie i stosie?
- 6. Przydzielanie pamięci na ciąg wewnątrz struktury
- 7. Przydzielanie pamięci Java na stos vs stertę
- 8. std :: przydzielanie wektorów i pamięci
- 9. GPU - mapowanie pamięci systemowej
- 10. Heap/dynamiczne vs. statyczne przydzielanie pamięci na przykład C++ klasy Singleton
- 11. Dane treningowe sklepu tensorflow na pamięci GPU
- 12. Uzyskiwanie progresywnego wykorzystania pamięci GPU
- 13. 2D Dynamiczne przydzielanie macierzy i przekazywanie przez odniesienie w C
- 14. Przydzielanie pamięci JVM w pojemniku Docker (LXC)
- 15. Nieprawidłowe przydzielanie pamięci w Pythonie LinkedList
- 16. Przydzielanie pamięci dla struktury w C
- 17. Dynamiczne przydzielanie identyfikatorów tagów za pomocą zmiennej EL
- 18. Generacja gałęzi na GPU
- 19. Współdzielona przepustowość pamięci Fermi vs Kepler GPU
- 20. Czyszczenie pamięci GPU OpenGL jest wymagane?
- 21. Alokacja dynamiczna z podziałem pamięci GPU 2D
- 22. Tensorflow OOM na GPU
- 23. SDCC i malloc() - przydzielanie znacznie mniej pamięci niż jest dostępne
- 24. Przydzielanie więcej niż 4 GB pamięci w 64-bitowym systemie
- 25. Przydzielanie pamięci we Flashu dla danych użytkownika (STM32F4 HAL)
- 26. Dynamiczne przechwytywanie procesora i użycia pamięci
- 27. Fortran: dynamiczne tablice vs. automatyczna tablica Unikanie alokacji pamięci
- 28. Narysuj krzywą kwadratową na GPU
- 29. Czyste, funkcjonalne programowanie na GPU
- 30. Wysoka precyzja matematyki na GPU
@ scatman: Przypuszczam, że przydzielona pamięć będzie na urządzeniu po wywołaniu malloc w jądrze ... Mam rację? – Manolete
Ponieważ procesor nie może wykonać tak szybko jak 2048 rdzeni GTX980, podejrzewam, że przydziela on na GPU. w przeciwnym razie byłby to tylko zintegrowany procesor graficzny, który nie byłby dyskretny. –