Whats old is new
So they have reinvented a form of DMA (Direct Memory Access), just with a different endpoint attached to it ?
Wasn't this problem solved in the 1970's ?
Nvidia, IBM, and university collaborators have a developed an architecture they say will provide fast fine-grain access to large amounts of data storage for GPU-accelerated applications, such as analytics and machine-learning training. Dubbed Big accelerator Memory, aka BaM, this is an interesting attempt to reduce the …
It's just an interesting way to get threads on GPU cores to talk direct to NVMe SSDs to get the data they need in a fine-grained, software-cached manner that specifically suits the access patterns of GPU-bound applications.
Yeah it involves DMA and all that. It's not claiming to have reinvented or come up with DMA; it's an application of it specific to GPU workloads.
Software cached just sounds like what IBM did with the Cell processor, where the data and code in the SPE's limited RAM was not controlled by a hardware cache mechanism second guessing what the software would ask for next, but by the orchestrating software putting data and code there for itself.
From the point of view of developers like me, that was fantastic. However the problem was that it was so far off the beaten track for a lot of developers it bombed as a concept and IBM dropped it, which was a real pity. Neat as this latest idea is, if it involves custom hardware on IBM's part I'd not be counting on them sustaining it as a dependable product line.
But it's in interesting idea. People have been looking for GPUs that can do more. Trouble is that, taken too far, you end up with something like an AMD APU....
Yeah, Z80s had a DMA mode where a system chip (usually the GFX chip) could set the CPU to DMA mode so that it could access main memory without the CPU cycles getting in the way
I think zilog had a FDD/HDD controller that used that mode too with a similer method to that in the figure of sending the controller the addresses to use along with block size, and the controller would use a DMA mode when the data had arrived from the disk and write it to memory.
I guess the reason this is really taking off is that the storage is no longer the bottleneck. In the past you needed something like a CPU to moderate access to storage to ensure no one device or process hogged storage. Now storage is no longer the bottleneck and everything can talk to it direct.
A large part of the AMD implementation was having faster-than-PCIe hardware interconnects twixt the SSDs and the GPU chip. The SSDs would be seen by the GPU as a slower tier of memory in addition to its RAM. The nVidia solution involves off the shelf hardware with custom software and drivers.
Are both ideas trying to make things faster? Well yeah, thats usually the game!
The future if NVMe to GPU data transfer looks rosy, be it for computation or gamers.
This promises to gamers a future for loading textures and other graphics artifacts from NVMe to GPU with lower CPU overhead.
But still needs GPU vendors to provide support at their end both in revised hardware and drivers to achieve the objectives.
So this ElReg article appears to mimic for Linux what Microsoft have had in beta over past 18 months.
Here is to an open source and spec future. Hip hip..