1. Optimus功能允许集成GPU和独立GPU共同工作以降低功耗:由intel的集成GPU提供日常的显示功能,而在需要CUDA加速或者游戏时使用Nvidia的独立GPU提供更高性能。
2. 在使用CUDA程序时,需要开启Nvidia的独立GPU。
3. CUDA与OpenGL/D3D只有在同一GPU上才能交互。
4. 过去的与图形学API互交互代码中,先创建了OpenGL/D3D上下文,然后再在OpenGL/D3D所在的GPU上创建CUDA上下文。在Optimus平台中,OpenGL/D3D上下文默认会被创建在intel集成GPU上,因此再在这个GPU上创建CUDA上下文会发生错误,引起失败。
我们建议的解决方法是:
1. 使用支持Optimus功能的笔记本用户可以在Nvidia Control panel的3DSettings->Manage3DSettings中将需要运行的程序加入到列表中,并将它们的preferred processor设置为High-performance Nvidia processor。
2. 程序编写者应该按照最新的方法修改代码。方法是首先创建一个不与设备绑定的OpenGL/D3D上下文;然后枚举所有CUDA设备并创建CUDA上下文;再把CUDA上下文所在设备与OpenGL/D3D上下文绑定;最后再将CUDA上下文与OpenGL/D3D上下文绑定。
请搜索CUDA_Developer_Guide_for_Optimus_Platforms.pdf获得详细信息。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23172605/viewspace-659481/ ,如需转载,请注明出处,否则将追究法律责任。