4 ms·
Ultimately its down to dimensionality CPUs (at least originally) were designed for scalar calculation, you loaded something a piece at a time from RAM and did a
by Ultimatt 8y ago
Ultimately its down to dimensionality CPUs (at least originally) were designed for scalar calculation, you loaded something a piece at a time from RAM and did a single scalar calculation before putting it back into RAM, rinse repeat. A GPU works in a more vectorised/matrix level way with essentially a pipeline of linear transforms on a set of data values all at once. The issue with both of these two is they still have a linear memory model, because that works for more serial lower dimension operations, usually three dimensions for a GPU maybe a couple more. Networks or graphs as objects aren't neatly linear in memory or nicely shaped into regular dimensions for doing pipelined vectorised calculations. Though the GPU model is a little closer than the CPU one. Graph algorithms its not random access or serial access either its /structured/ access based on the graphs connections. So ideally you want memory shaped and optimised for this sort of access, as well as computation well linked to utilise this rearchitected RAM. Many companies have been exploring newer architectures for dealing with ANN calculations that inherently benefit from changing the model of memory access and computation. So you can "emulate" as in reformulate the mathematical representation of a graph into a list or a matrix, an adjacency list based algorithm would work well on a CPU and an adjacency matrix based one would work better on a GPU. But neither of those fit perfectly to either model they are just dimensionally the nearest with many tradeoffs you have to make for each.