nicholas-leonard / hypermind

A distributed neural network framework for the brave
0 stars 0 forks source link

Prototype 1 #1

Open nicholas-leonard opened 11 years ago

nicholas-leonard commented 11 years ago

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.

nicholas-leonard commented 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.

nicholas-leonard commented 11 years ago

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/.