2018年7月19日 星期四

使用 ARM NEON 指令於 Qualcomm Centriq 平台上優化 JPEG 轉換

值得一讀的優化過程文
優化的對象是 jpegtran — 一個用來無損轉換 JPEG 自一個格式到另一個的工具 (主要用於旋轉 N*90度, 或是作 progressive 與 baseline 互換)
由於使用 ARM server 的緣故, 發現 processing throughput 僅僅 Intel Xeon 的約 1/4, 主因在於一些軟體並沒有對 ARM 平台做優化, 除了對原有以 SSE 優化過的 loop 使用 NEON 改寫外, 也增加使用 vqtbl4q_u8 來做查表(個人撰文介紹過), 最終可以達到超越 Xeon 上的效能
而若再考量每瓦效能, ARM server (24 images/watt)則為 Xeon server (10 images/watt)的 2.4 倍
大部分的優化工作, 都沒有捷徑:
1. 分析 workload, 做有意義的量化
2. 尋找發生問題的瓶頸, 並評估是否為理論/物理瓶頸(無解)
3. 投入時間, 導入工具或方法, 實作優化項目
4. 成果驗證與評估增益

沒有留言:

Chisel 學習筆記 - Scala 與 Chisel 基礎語法

標題為筆記, 但這篇比較屬於心得 延續 上一篇 的環境建立, 這次計劃藉由 Jserv 最新的 課程安排 來學習 Chisel, 當然個人目標是能夠按照 Jserv 的課程規劃在 期限之內 完成 Lab 3, 由於個人並非 digital designer (現在這年紀也算老貓學...