Что делает драйвер Nvidia CUDA точно? с точки зрения использования CUDA. Драйвер передает код ядра с конфигурацией выполнения (#threads, #blocks) ... и что еще?Что делает драйвер nVIDIA CUDA?
Я видел сообщение о том, что водитель должен знать о количестве доступных SM. Но разве это не нужно? После того, как ядро передается на GPU, планировщик графического процессора просто должен распространять работу на доступные SM ...
Спасибо, отличный ответ! –
Еще один вопрос, если вы не возражаете. Эта «унифицированная модель адресации» похожа на виртуальную память, верно? То, что адреса виртуальной памяти, используемые в ядре CUDA, будут переведены на реальные физические адреса памяти GPU (глобальные, локальные, общие, ...). Это чисто сделано на уровне водителя? Я думаю, что драйвер просто должен перевести унифицированный адрес на фактический физический адрес (глобальный, локальный, ...), в то время как GPU HW не должен ничего знать об этом виртуальном материале. Правильно ли я понимаю? Благодаря ! –
Что я подразумеваю под унифицированной адресацией, это схема в CUDA 4.0 и более поздних версиях, которая позволяет нескольким графическим процессорам и некоторым другим устройствам, таким как сетевые интерфейсы, отображать себя в общее адресное пространство с хостом. Все это делает водитель. Кажется, что у карт Fermi есть TLB для выполнения внутреннего сопоставления виртуальных адресов с аппаратными функциями. Это необходимо запрограммировать, в котором будет находиться драйвер, но в противном случае адресный перевод должен выполняться устройством. – talonmies