programming-asm mmx sse c 指令集 performace比較


記下來以免忘記

SSE Version

 

image

 

SSE integerversion

 

image

mmx version

 

image

 

C version

image

 

test code:

image

 

計算就是我把 jpeg decode的時候 DC coeffiect 乘 quntatable的做了 1440*900次 做 10次取平均值

 

SSE, SSE integer  結果大概都是 97 ms

如果 coefficient 有很多零計算時間也會差不多.意思是不會為了0而特別作處理!

mmx 大概是 133 ms

version : 750 ms!

另外依個重點是 當我把sse 和 mmx的要計算的資料除以2 時間並不會少一半!!很重要

比如mmx 全部算是 133ms 少一半是 106, 再少一半是] 85 ms 我猜是因為 data 移動的時間導致的

   sse全部算是97 少一半是 80 ms

 

還有 在sse 最後面 ,如果把 cx 改掉不用loop而直接手動加16次的話. 會improve到90ms左右.但是可讀性會很差!! 相較於把c轉成 sse 變成 1/7. 犧牲可讀性的結果是在少8% 所以要好好考慮. 應該在最後在作要不要改的動作.

 

sse

結論:

1.  sse > mmx > pure c

2. matrix有很多0不會讓計算變快

3.資料量少一半 time不會少一半

4. I am good :p

About these ads
This entry was posted in programming-asm. Bookmark the permalink.

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s