2010-08-25 12 views
6

Me gustaría saber cuánta memoria libre hay en mi dispositivo antes de asignar almacenamientos intermedios. es posible? Sé que hay CL_DEVICE_GLOBAL_MEM_SIZE para la memoria total, y CL_DEVICE_MAX_MEM_ALLOC_SIZE para el tamaño máximo de un solo objeto, pero me gustaría saber el estado actual de la memoria.¿Cómo determino la memoria del dispositivo disponible en OpenCL?

Tal como están las cosas, probablemente tenga que usar las extensiones específicas del proveedor de OpenGL.

Respuesta

2

No, no hay manera, y no hay necesidad de saberlo, la memoria de la GPU se puede virtualizar y el controlador intercambiará memoria de la GPU cuando no la necesite.

+1

Es bueno saber que no hay forma, pero ¿por qué dirías que no es necesario? No quiero intercambiar memoria, y dado que también estoy trabajando con GL, no quiero comer toda la memoria de GL. – nullspace

+0

No es necesario porque el controlador se encarga de eso. Los recursos GL también están virtualizados. El intercambio no es realmente malo, solo copiará datos en VRAM a la RAM, y viceversa cuando sea necesario. ¿Qué harías si descubres que no queda suficiente VRAM? –

+0

Actualmente, está bloqueando el subsistema GL y espera a que TDR lo reinicie. Es posible que esto se deba a un error en mi código, pero la asignación de búferes más pequeños lo corrige. Me gustaría determinar un tamaño de búfer óptimo. Entonces es más una cuestión preventiva. – nullspace

Cuestiones relacionadas