Embedded changes for the GPU

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Embedded changes for the GPU

Sky Morey
Team,

I am not sure if this is the right forum for this request, or if a direct email would be better?

For the past 7+ years I have worked on porting SQLite to run entirely on the GPU using Nvidia's CUDA providing access to host files. The GPU is like any other embedded processor and should have SQLite.

http://on-demand.gputechconf.com/gtc/2016/presentation/s6652-sky-morey-sqlite.pdf
http://on-demand.gputechconf.com/gtc/2016/video/S6652.html

This project has reached a natural breaking point and I am re-platforming, updating said project to the latest SQLite and in the current SQLite Fossil repository for automatic upgrades, with an eventual goal, If your team finds it valuable, of slipstreaming into the code base as another embedded platform.

In order to support embedding SQLite on the GPU libcu has been created, which acts like a C function library, and extends to host resources to the GPU.

libcu - https://github.com/BclEx/libcu (will be moving to https://github.com/libcu/libcu)

sqlite-cuda - c, cpp, cuda enabled git mirror of SQLite sources: https://github.com/libcu/sqlite-cuda


Therefore I have three asks:

Firstly, unfortunately CUDA only supports a C++ compiler, and SQLite currently will not compile using the C++ ruleset. I have resolved all casting issues while support both C and C++, and with only minimal modifications: simple casts,  _cplusplus wrapped #defines ,  and modifications to build scripts.

  *   Optionally enable C and C++ compiler support - I can provide these changes, or help re-apply them to a branch for your evaluation.

Secondly, every CUDA method and field/constant must be prefixed with keyword(s) which target the Host or GPU. A standard define can be used similar the existing SQLITE_API and SQLITE_CDECL defines.


  *   Add SQLITE_METHOD, SQLITE_FIELD, SQLITE_CONTANT defines applied to every method and field - I can provide these changes, or help re-apply them to a branch for your evaluation.

Third, CUDA as an embedded platform require its own declarations, similar to those for the existing vxworks.h header. Add cuda.h file, and add to build scripts.


  *   Add cuda.h file and include in build scripts - I can provide these changes, or help re-apply them to a branch for your evaluation.


Thank you,

-.. . --. / ... -- .- .-. - . .-. / -.. .. --. .. - .- .-..

Sky Morey
Chief Architect, DEG
913.951.3104 (direct) | 816.304.4341 (mobile)

www.DEGdigital.com<http://www.degdigital.com/> | 913.498.9988 (office) | @smorey2<http://twitter.com/degdigital>

_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users