- Joined
- Apr 1, 2005
- Messages
- 585
- Reaction score
- 189
Admittedly, I know diddly squat about the ultra-modern PC architecture. But wouldn't it be trivial to grab the main CPU, if you have complete control over the programmable GPU? Couldn't you just use the GPU's DMA to modify whatever system RAM you want? I don't think the OS would know how to defend against a hostile PCIe card, and I don't know of anything that would ensure the GPU would respect the processors mapping of data/executable regions.
I'm don't think they can arbitrarily access memory in quite that fashion, only memory that has been marked as mappable by the OS in the first place. The trend is for modern graphics cards to have 1GB or more of their own memory since from their perspective, accessing over PCIe is cripplingly slow.
Code:
:~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release$ ./bandwidthTest
[bandwidthTest] starting...
./bandwidthTest Starting...Running on...
Device 0: GeForce GTX 275
Quick Mode
Host to Device Bandwidth, 1 Device(s), Paged memory
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 2849.3
Device to Host Bandwidth, 1 Device(s), Paged memory
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 2225.0
Device to Device Bandwidth, 1 Device(s)
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 105164.6
[bandwidthTest] test results...
PASSED
As you can see, host <-> device performance is way slower.