Open nicholas-leonard opened 11 years ago
I don't like thrust. It seems bloated with c++ idioms. But maybe this is just me being scared of its learning curve. I want to make my code nice and reusable, which is why it might be a good idea to build our framework around thrust. But on the other hand, thrust isn't built with pinned-memory and sparse computations in mind. The main advantage of extending thrust and cusp to include my memory manager, dcv and rcv matrices, and so on, would be that I would then have a fully working template wrapper for blas and transform-reductions.
Not only is it really complicated to use, it is not built for full asynchronism. We could still use some of its more basic parts.
One thing we could do is fork thrust to make in asynchronous. Nah that would mean too much work. And what we are building isn't a parallel algorithms library like thrust. We are building a neural network library like https://code.google.com/p/annetgpgpu/.
Send a list of pointers to row vectors to device : A Send a row vector to device : B Multiply B with A : C Send C to host.