使用opencl來實現編碼演算法中運動搜尋模組!
下面測試資料時在gtx570上的測試結果:
lcu為32x32, 100幀720p, cpu上純c演算法使用搜尋時間是67s, gpu上是0.915s
lcu為16x16, cpu 是76.8s, gpu上是1.6s
lcu為8x8, cpu 是82.5s, gpu上是4.2s
同樣的程式, cpu改為sse實現, gpu做乙個小的改動, 使用縮減演算法! 結果如下:
從上面資料可以看出, sse 比c語言快5倍左右, 新的gpu kenel快了20%左右, 其中lcu為8x8的快了好幾倍!
綜合看來
opencl實現 比c語言實現接近100倍的級別, 比sse快了接近20倍左右!
另外提一句, 如果opencl不適用__local 記憶體的話, 會慢一半!
下面貼出部分**供參考:
[html]view plain
copy
print?
#define searchrange 16
#define edge_size_t 48
//32x32 version of kernel
__kernel void opencl_me_32x32(const __global short* p_ref, __global short* p_cur, __global int* outputbuf, __local int* local_refbuf, __local int* local_curbuf, __local int* mv_cost)
[html]view plain
copy
print?
[html]view plain
copy
print?
if((local_y ==0) && (local_x == 0))
[html]view plain
copy
print?
用vim轉換M 文字中的換行符 M
在 dos windows 裡,文字檔案的換行符為 r n 而在 nix系統裡則為 n,所以 dos windows 裡編輯過的文字檔案到了 nix 裡,每一行都多了個 m 刪掉該字元可以在 vi 裡用下面的方法試試 1 s r g 2 s m g 注意 m 的輸入用ctrl v,再按回車,或者是 ...
用python將excel中的內容存入mysql
將excel中的內容存入mysql,如下 encoding utf 8 import time import xlrd import hashlib from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative imp...
spring中Cache用什麼map實現快取
配置快取註解版 啟動類上新增 enablecaching 具體方法上 cacheable value menucache key是底層建立的 為了防止查詢資料出現髒讀,在關於查詢資料的刪除資料方法上新增 cacheevict value menucache allentries true 從cach...