I'm interested in the programs using multi-GPUs.
But this is not connected to SLI or CrossFire.
I have two GeForce7950GT videocards, and I'm using these cards without SLI.
Each videocard are connected to different one display.
In this environment, GetAdapterCount function returns 2.
Then, I use CreateDevice two times and executed same shader program in each device.
As a result, 2nd device obtained lower performance than 1st device.
Shader program is a simple filter program (but, executes loop calculation for enlarge computational effort), so CPU's loading is not high. So, I don't think CPU is bottleneck of this experiment.
On the other hand, I created 2 devices and made 2nd device to execute shader program, the performance was lower than 1st device only case.
Then, I created two windows and adjustment each position to show each window in other display, but the 2nd device's performance was lower than 1st device's.
Can I avoid the performance decrement of 2nd device
If you have some good solution, please advise me.
I'm sorry for my poor english.
Thanks.
複 GPU 利用 興味 、調 。
、SLI CrossFire 係 無 話 。
私 GeForce7950GT 2枚持 、SLI 使用 設定 利用 。各 1 、 利用 。
態 GetAdapterCount 呼 出 2 返 。
、CreateDevice 2 生成 、 同 行 。 、2 速度 著 低下 現象 遭遇 。 自体 純 平均化 (GPU 負荷 上 、 繰 返 演算 行 )、CPU 負荷 高 。 、CPU側 考 思 。
、 2 生成 態 2 描 理 行 、1 描 比 速度 現象 確認 。
2 生成 、 別 表示 位置 調整 、結果 。
複 GPU 搭載 PC 各GPU 立 理 行 場合、以上 性能低下 起 避 。
問題 解決 方法 教授 。 願 。

multi-GPUs program
vincent90152900
and each videocard are connected to different one display.
I confirm by using sample program of DirectX SDK,
only videocard connected to specific PCI-e slot could obtain good performance
independently of configuration of primary display.
(Good performace could obtain in only below case:
window is shown in the display connected to specific (nearer CPU) PCI-e slot when changing ChangeDevice-DisplayAdapter of DXUT configuration.)
I can't understand why I obtained such result.
Are these DirectX's (DirectX device's ) specifications
Or, do my hardware (nFOrce590SLI,GeForce7950GT*2) have any problems
既 述 、私 環境 2枚 GPU 搭載 、
出力 行 。
DirectX SDK付 行 確認 、
設定 係 、
特定 PCI-e 接 側 良 性能 得 。
(DXUT ChangeDevice-DisplayAdapter 更 、
特定 PCI-e (CPU 近 PCI-e )接
表示 場合 、良 性能 得 。)
DirectX 仕 ?
(nForce590SLI,GeForce7950GT*2) 問題 ?
LondonSte
I tried more examples and got a not-so-happy progress.
In my environment, GetAdapterCount function returns 2.
So, I call CreateDevice just one time with 1st argument of 1, and compare the performance with 1st argument of 0.
As a result, the performance in the 1st case(CreateDevice(1, ...)) was lower than 2nd case(CreateDevice(0, ...)).
ex: 1st case 60FPS, 2nd case 18FPS.
This result didn't change while changing position of window.
sample program: http://aaa.jspeed.jp/~togabito/etc/gputest2.zip
As a trial, I'll create multi processes (or multi threads) program from now.
I think, there is not much hope...
thanks.
DKB
Not sure exactly, but you it's not just computation-bound that makes the CPU a factor - the general overhead with the D3D API might well be an issue.
Have you tried running both devices as seperate applications and/or in seperate processes/threads
For example, use a command-line switch to toggle between the first or second adapter, and then run the same executable twice - just with different parameters.
My idea being that if the same process is using two devices then any overhead incurred by the first device might well be delaying the application telling the 2nd device what to do. Maybe, just maybe, in seperate processes they won't be synchronized on each-other.
hth
Jack