2

I'm interested in DirectCompute and I would like to know if it's possible, having two different Graphics adapters connected to the computer to use Direct Compute on both at the same time, like in CUDA. As far as a i know dispatching a computer shader in directcompute is asynchronous, so would be possible to dispatch computer shaders to different devices created with different adapters?

Thanks in advance!

sorts
  • 21
  • 2
  • Not familiar with directcompute, but judging by slide 59 of [this presentation](http://on-demand.gputechconf.com/gtc/2010/presentations/S12312-DirectCompute-Pre-Conference-Tutorial.pdf) and overall syntax it should be possible: just create multiple devices with `D3D11CreateDevice`, compile shaders for both of them and so on. – aland Jul 28 '14 at 16:50
  • That was my feeling, creating multiple threads on the CPU and managing different devices simultaneously, but no way, it works but the performance of both directcompute kernels decreases and it's far from executing the shader in the main thread, i'm still looking into this problem, but it seems that there's no way, unless in Directx11 – sorts Aug 04 '14 at 21:22
  • This should work just fine - just create a device for each adapter. Is something not working as you expect? – MooseBoys Sep 12 '15 at 00:59

1 Answers1

-1

youd want to do it in a single call, but you need 2 different device contexts. the main issue is, not the fact that you have 2 device objects, the problem is, i wonder if you take out the bus line twice, just for one call. that you wouldnt have to with just one graphics card, needlessly.

Thats the issue. so if you have 128 dispatches that are working, with 2 cards, now you only have 64 dispatches - and it sucks.

  • 1
    This advice is highly dubious. If you're really doing so little work on the GPU that you're PCIE-bound, you probably shouldn't be doing the work there in the first place. – MooseBoys Sep 12 '15 at 00:58