¿Es posible asignar dinámicamente memoria en la memoria global de una GPU dentro del Kernel?
No sé cuán grande será mi respuesta, por lo tanto, necesito una forma de asignar memoria para cada parte de la respuesta. CUDA 4.0 nos permite usar la RAM ... ¿es una buena idea o reducirá la velocidad?Memoria de asignación dinámica en la GPU
5
A
Respuesta
10
es posible usar malloc dentro de un kernel. comprobar lo siguiente que se toma de guía 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
De CUDA 4.0 usted será capaz de utilizar new
y delete
operadores de C++ en lugar de malloc
y free
de c.
Cuestiones relacionadas
- 1. asignación dinámica de la memoria
- 2. Asignación de memoria dinámica
- 3. Asignación dinámica de memoria pregunta
- 4. asignación de memoria dinámica en 'c' Cuestiones
- 5. Asignación dinámica de memoria constante en CUDA
- 6. Asignación de memoria dinámica basada en disco
- 7. Uso de la asignación de memoria dinámica para matrices
- 8. Idioma Pimpl sin utilizar la asignación de memoria dinámica
- 9. asignación dinámica de memoria para la matriz 3D
- 10. C++ asignación de memoria dinámica en una función - pregunta novato
- 11. scanf asignación dinámica
- 12. agregación de la clase de diseño: asignación de la pila frente a la asignación de la memoria dinámica
- 13. ¿En qué situaciones la asignación estática es mejor que la asignación dinámica?
- 14. ¿Hay protección de memoria en las GPU
- 15. ¿La asignación de memoria dinámica difiere en C y C++ en implementaciones populares?
- 16. asignación dinámica constante
- 17. Perfilado de asignación de memoria en C++
- 18. Comprobando la asignación de memoria en Instrumentos
- 19. Asignación dinámica de clase derivada en C#
- 20. Asignación dinámica de funciones en Python
- 21. Asignación estática vs. Asignación dinámica vs. Asignación automática
- 22. Conflicto de banco de memoria compartida GPU
- 23. Asignación de memoria en C++
- 24. asignación de memoria en C++
- 25. Asignación de memoria en C
- 26. 64bit Asignación de memoria
- 27. ¿Qué hace esta asignación dinámica?
- 28. OpenGL GPU ¿Requiere limpieza de memoria?
- 29. ¿Cómo manejar la limitación de memoria de la GPU para el procesamiento de imágenes de alta resolución en la GPU?
- 30. Asignación de memoria dinámica - inicialización predeterminada de tipos primitivos en C++
@ scatman: Supongo que la memoria asignada estará en el dispositivo una vez que llame a malloc dentro de un kernel ... ¿Estoy en lo cierto? – Manolete
Dado que una CPU no puede malloc tan rápido como 2048 núcleos de gtx980, sospecho que se asigna en gpu. de lo contrario, sería solo para gpus integrado no discreto. –