推 a1u1usul3: query是由db那邊負責的吧,要做得應該是db那台server 08/04 16:22
→ a1u1usul3: 有GPU,接到query的時候由GPU去加速,然後回傳給client 08/04 16:22
→ hn12404988: 還在自己的電腦測試,db就在同一台,cpu和GPU都有 08/04 17:10
→ hn12404988: 你說的「GPU加速」有沒有詳細一點的? 08/04 17:10
→ hn12404988: query執行我不想經過CPU,不確定mariadb能否作到 08/04 17:13
推 obarisk: 可是你不會想在資料庫裡面算啊,io的大小也有限 08/04 19:28
推 soem: query執行全部都不經過CPU的設計很沒有必要,還是有一些比較 08/04 22:22
→ soem: 適合用CPU算,除非你整個db跑在VRAM裡面 08/04 22:23
謝謝以上的分享,其實我很久以前就有這種想法
但也因為上述的原因,一直找不到情境適合來作
但最近開始在建立伺服器端的「搜尋」系統,其實現在沒多少資料,也是不必要
但假如這是一個上千萬比資料的伺服器(類似Google搜尋)
不知道Google的作法,但目前我是建立一隻「搜尋爬蟲」,反正大家搜尋的內容大部分一樣
先呈現的結果都是已經事先搜尋好的cache給上去而已,不是即時搜尋,即時會太慢
目前想試試看如何加速搜尋爬蟲,從用CPU改成GPU
目前可能想試試看
1.mariadb的被搜尋資料建立在sqlite
2. 看要用哪一種方法切分資料成一千等分
3. 只是很簡單的"select content from table where content like '%apple%'"
情境:『很簡單的query, 但就是資料量很多』
當然現在資料量很少,但想實作看看
※ 編輯: hn12404988 (220.133.16.181), 08/04/2016 23:19:57
推 a1u1usul3: 那兩篇論文看起來是只能支援select的subset 08/05 02:34
→ a1u1usul3: 有些比較困難的語法可能就不適用 08/05 02:35
→ a1u1usul3: 如果你是要找現成的,那就各家找找看,應該會有有支援 08/05 02:35
→ a1u1usul3: GPU加速的現成DB可以用 08/05 02:36
→ a1u1usul3: 如果你要自己寫,那就去寫吧 08/05 02:36
→ a1u1usul3: 吃到query的時候,判斷是否夠簡單,然後從Main memory 08/05 02:38
→ a1u1usul3: 透過PCIE丟到GPU,然後比對完再傳回結果 08/05 02:38
→ uranusjr: 就算 query 夠快, 直接用在普通資料庫大概也會卡在 disk 08/07 06:11
→ uranusjr: access, 除非整個 dataset 可以 in-memory 08/07 06:12
→ uranusjr: 我總覺得你的方向好像不太對, 改找 caching 之類的方案 08/07 06:13
→ uranusjr: 似乎會更適合, 但你也沒說你到底想拿來幹什麼 08/07 06:14
推 KAOKAOKAO: GPU的各個thread無法完全獨立 如果條件控制太亂 效能 08/17 15:36
→ KAOKAOKAO: 會非常差 08/17 15:36