想請教有沒有人有使用GPU加速SQL速度的經驗
雖然我還沒實作,但以下是我的猜測
(Centos 7, C++, CUDA in C++, MariaDB, CPU八核心)
﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍
程式的執行是由int main開始
接著併發一千個cuda thread, parse 「mysqlcppconn」 lib給每個thread
(mysqlcppconn 是一個mysql寫給C++ lib, mariadb也可用)
每個thread單獨連接mariadb,mariadb不設thread pool,也就是one thread per connection
cuda thread 執行完query, 返回結果給int main
﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍
根據我的猜測,以下這幾點是不是正確的呢?
1. mariadb的query 執行一樣是CPU,不管是直接c++呼叫,還是從一千個cuda thread
2. 根據1, 只是一千個query在CPU一直task switch
另外,上網查GPU-based的SQL, 好像SQLite目前有支援GPU執行
https://www.cs.virginia.edu/~skadron/Papers/bakkum_sqlite_gpgpu10.pdf
http://wscg.zcu.cz/wscg2014/Short%5CK17-full.pdf
我還沒時間仔細看,但直接看結論,似乎SQLite可以真正作到
把「SQLite」包在每個cuda thread,真的是同時執行一千個sql query
而不是還要透過CPU一層
希望可以聽到有經驗的人的分享,謝謝