1
Nvidia CUDA驱动程序是做什么的?从使用CUDA的角度来看。 驱动程序传递内核代码,执行配置(#threads,#blocks)... 还有什么?nVIDIA CUDA驱动程序究竟做了什么?
我看到一些帖子,司机应该知道可用SM的数量。 但是这不是没有必要吗?一旦内核传递给GPU,GPU调度器只需将工作分散到可用的SM中即可...
Nvidia CUDA驱动程序是做什么的?从使用CUDA的角度来看。 驱动程序传递内核代码,执行配置(#threads,#blocks)... 还有什么?nVIDIA CUDA驱动程序究竟做了什么?
我看到一些帖子,司机应该知道可用SM的数量。 但是这不是没有必要吗?一旦内核传递给GPU,GPU调度器只需将工作分散到可用的SM中即可...
GPU不是一个完全自主的设备,它需要一个批次帮助从主机驱动程序最简单的事情就是做 。据我所知的驱动程序包含至少:
这可能代表了裸将某些用户级设备代码放到GPU上并通过主机端API运行所需的最低限度。
谢谢,很好的回答! – 2012-03-20 20:27:50
如果你不介意,还有一个问题。 “统一寻址模型”有点像虚拟内存,对吗? CUDA内核中使用的虚拟内存地址将被转换为实际的物理GPU内存地址(全局,本地,共享...)。这完全是在驾驶员级别完成的吗?我认为驱动程序只需要将统一的地址转换为实际的物理地址(全局,本地,...),而GPU HW不需要知道有关此虚拟内容的任何信息。我的理解是否正确?谢谢 ! – 2012-03-20 20:30:33
统一寻址的含义是CUDA 4.0及更高版本中的方案,它允许多个GPU和某些其他设备(如网络接口)将自己映射到主机的公共地址空间。这全部由司机完成。费米卡似乎具有用于虚拟地址到硬件特征的内部映射的TLB。这需要进行编程,这是驱动程序进入的地方,但地址转换应由设备完成。 – talonmies 2012-03-20 21:19:30