用OpenCL實現HEVC中ME模組的測試資料分析

2021-09-07 02:27:29 字數 1206 閱讀 4636

使用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...