Я хотел бы знать свое свободное и полное память о моих GPU устройств благодаря функции cuMemGetInfo()cuMemGetInfo() и size_t ограничение
// ----- Before any variable initialization -----
size_t free;
size_t total;
CUresult result=cuMemGetInfo(&free,&total);
я получаю результат:
Free memory : 4095 MB
Total memory : 4095 MB
Я работаю над Tesla C2070 с 6 ГБ памяти на 64-битной Windows 7. Однако мое приложение работает в 32 бит. Мой код должен дать мне что-то вроде:
Free memory : 5376 MB
Total memory : 5376 MB // values given by the deviceQuery.exe example of CUDA
I 4095 * 1024 * 1024 = 4293918720 составляет около 2^32 (после округления). Действительно, size_t s - указатель на unsigned int (на 4 байта).
Итак, вот мой вопрос. Можно ли изменить определение size_t, чтобы указать на unsigned long, например?
благодаря
Задайте свой хост-код для компиляции для 64 бит, и вы должны получить 64 бит 'size_t'. –
О, я помню, что я не могу запустить 64-битное приложение из-за совместимости между Qt, CUDA и Visual Studio. Есть ли способ обойти это? –
@ ParkYoung-Bae, если вы хотите дать ответ на эти строки, я бы поднял голову. Компиляция приложения в виде 64-битного означает * единственный способ * получить доступ к памяти GPU за пределами границы 4 ГБ. –