Tri*_*leS 2 cuda direct3d tesla
我想知道我是否可以使用Nvidia Tesla K20和Direct3D 11?
我想使用Direct3D渲染图像,然后使用CUDA处理渲染的图像,[我知道如何计算CUDA的互操作性].
特斯拉k20没有显示适配器(物理远程适配器)
我设法使用特斯拉C2075,但是使用K20我无法接收设备适配器(EnumAdapters命令).
是否可以使用特斯拉K20和Direct3D?
坦率地说,这段代码是用记事本写的
谢谢
IDXGIFactory* factory = 0 ;
IDXGIAdapter* adapter = 0 ;
int dev = 0;
CreateDXGIFactory( __uuidof(IDXGIFactory) , (void**)&factory);
for (unsigned int i = 0 ; !adapter ; ++i )
{
if ( FAILED( factory->EnumAdapters (i , &adapter )))
break;
if ( cudaD3D11GetDevice(&dev , adapter) == cudaSuccess )
break;
adapter->Release()
}
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的.
K20m可以在Linux上使用(通过一些努力)OpenGL图形,但至少通过Windows 8.x,你将无法在Windows中使用K20m作为D3D设备.
K20m不会在PCI配置空间中发布VGA类代码,这意味着其他窗口和NVIDIA驱动程序将在此设备上构建正确的Windows显示驱动程序堆栈.没有它,你不能将它用作D3D设备.通过该nvidia-smi
实用程序可以看到其他证据,这将显示K20设备处于TCC模式.任何将其切换到WDDM模式的尝试都将失败(以某种方式 - 在重新启动之前故障可能不明显).
如果您发现可能的另一个GPU(例如Tesla C2075),它总是意味着GPU正在PCI配置空间中发布VGA类代码.
该一般文档涵盖幻灯片62上的PCI报头中的类代码位置.该ECN摘录了类代码定义.VGA类代码是0x0300,而3D控制器类代码(我相信是K20m发布的)是0x0302.
以上有一些有限的例外情况.例如,一种配置中的Tesla M2070Q不会发布VGA类代码(有另一种配置,它会发布VGA类代码),而是发布3D控制器类代码.在此配置中,Microsoft RemoteFX可将其用作多个Hyper-V VM的共享图形设备.在这种情况下,VM中可以实现一些D3D功能(通过DX9).
在linux中,使用lspci命令可以明显看出"3D控制器"和"VGA控制器"之间的区别.
在Windows中,您可以获取配置空间阅读器来查看差异,或者您可以查看设备管理器.特斯拉C2075应显示在"显示适配器"下,而K20m将显示在其他地方.
归档时间: |
|
查看次数: |
322 次 |
最近记录: |