GPU-bases SQL 資料庫 - Linux

Enid avatar
By Enid
at 2016-08-04T16:10

Table of Contents

想請教有沒有人有使用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一層

希望可以聽到有經驗的人的分享,謝謝

--
Tags: Linux

All Comments

John avatar
By John
at 2016-08-09T08:24
query是由db那邊負責的吧,要做得應該是db那台server
有GPU,接到query的時候由GPU去加速,然後回傳給client
Kama avatar
By Kama
at 2016-08-13T14:13
還在自己的電腦測試,db就在同一台,cpu和GPU都有
你說的「GPU加速」有沒有詳細一點的?
Noah avatar
By Noah
at 2016-08-15T07:04
query執行我不想經過CPU,不確定mariadb能否作到
Quintina avatar
By Quintina
at 2016-08-17T03:05
可是你不會想在資料庫裡面算啊,io的大小也有限
Ula avatar
By Ula
at 2016-08-21T14:22
query執行全部都不經過CPU的設計很沒有必要,還是有一些比較
Liam avatar
By Liam
at 2016-08-25T07:55
適合用CPU算,除非你整個db跑在VRAM裡面
Brianna avatar
By Brianna
at 2016-08-29T20:43
那兩篇論文看起來是只能支援select的subset
Emma avatar
By Emma
at 2016-09-03T16:17
有些比較困難的語法可能就不適用
如果你是要找現成的,那就各家找找看,應該會有有支援
David avatar
By David
at 2016-09-07T00:59
GPU加速的現成DB可以用
如果你要自己寫,那就去寫吧
Selena avatar
By Selena
at 2016-09-11T09:02
吃到query的時候,判斷是否夠簡單,然後從Main memory
透過PCIE丟到GPU,然後比對完再傳回結果
Lucy avatar
By Lucy
at 2016-09-12T10:50
就算 query 夠快, 直接用在普通資料庫大概也會卡在 disk
Gary avatar
By Gary
at 2016-09-16T17:09
access, 除非整個 dataset 可以 in-memory
Annie avatar
By Annie
at 2016-09-17T18:48
我總覺得你的方向好像不太對, 改找 caching 之類的方案
Kyle avatar
By Kyle
at 2016-09-20T19:14
似乎會更適合, 但你也沒說你到底想拿來幹什麼
Olivia avatar
By Olivia
at 2016-09-24T20:27
GPU的各個thread無法完全獨立 如果條件控制太亂 效能
會非常差

如何在日期裡面加一個空格

Gary avatar
By Gary
at 2016-08-02T15:07
如果用 date +and#34;%b %eand#34; 輸出是 Aug 2 (兩個空格) 但如果用 test=`date and#34;+%b %eand#34;` ; echo $test 輸出變成 Aug 2 (剩一個空格) 請問這邊要怎麼讓他變回兩個空格呢 其實我是要抓ls -Rl 下 ...

cscope 搜尋後 跳項目

Megan avatar
By Megan
at 2016-08-01T16:14
大家好 請問有人知道 當cscope搜尋後 cs find s 出現 類似(1 of 10)訊息 如何繼續向下搜尋 或者跳項呢 Thanks. - ...

網樂通一直安裝XBMC失敗

Margaret avatar
By Margaret
at 2016-07-31T23:35
已經改裝成外接隨身碟,google無法安裝XBMC的原因就是有一些會挑隨身碟 已經換了三個隨身碟,還是安裝失敗,也試了每個隨身碟安裝十次左右,還 是安裝失敗,後來發現有人將網樂通XBMC用再生龍備份起來分享 然後還原回去就可以使用了,不過因為年代久遠,很多連結都失效了 不知道版友們有沒有現今還在用網樂 ...

如何把網卡維持在monitor模式

Kelly avatar
By Kelly
at 2016-07-31T10:58
小弟最近有在用aircrack-ng 但是遇到了一些網卡的問題 之前用的時候都沒出什麼狀況 可是自從有次我改完MAC位址後跑去開airmon 網卡就...開不起monitor模式了 Q.Q 之後每次用airmon-ng它都會說Name not unique on network 然後開起來了mon0都是在m ...

CentOS上 web-site refused to connect

Gary avatar
By Gary
at 2016-07-30T01:19
租了一個VPS(20GB/1GB) 上面用CentOS6.8 x64 拿來當Web server 本來一切正常 但前幾天不知為何 網站突然進不去 出現 and#34;504 Gateway timeoutand#34; 參考這篇做法 https://www.scalescale.com/tips/ ...