Обращаясь к более чем 4 ГБ памяти GPU - как это работает?

Типичные графические процессоры сегодня в основном 32-битные. Хотя они могут выполнять двойную точность, ALU в основном принимают 32-битные целые числа, индексы потоков и размеры сетки 32-битные, и (я предполагаю) псевдо-указатели также соответствуют 32-битным физическим адресам без знака.

Однако некоторые графические процессоры (Teslas, GTX Titans) поставляются с 6 ГБ, 8 ГБ и 12 ГБ памяти.

Ну, как это работает? Я имею в виду, вы можете обратиться к более чем 4 ГБ одновременно? Если так, то как? Можете ли вы сделать [i] = 123 с i, имеющим тип unsigned long int? Или это нечто вроде смещения сегмента, как в старые добрые времена 8086 года? Или, может быть, каждое ядро ​​может адресовать только 4 ГБ, но разные ядра могут адресовать больше?

1 ответ

Что ж, получается, что указатели на GPU (по крайней мере, на графических процессорах NVIDIA и, вероятно, на AMD) являются 64-битными. Таким образом, нет проблем с обращением к 4 ГБ, 40 ГБ, 400 ГБ или 4 миллионам ГБ. Только для 32-битных платформ может существовать устаревшая поддержка 32-битных указателей.

Другие вопросы по тегам