【ATU Book-S32V系列】 APU 資料型態 & 函式庫

一.   概述

前文回顧,從上一篇 APEX 進階架構 ,介紹關於進階的 APEX 硬體架構與軟體建置流程。亦從上一篇的觀念得知,建立 APEX Kernel 是需要層層建立起來的,第一層就是建置 APU Kernel 。而此篇文章將以工具書的概念,快速地介紹設計 APU Kernel 時會運用到的資料型態以及函式庫。以利於後續在撰寫 APU Kernel 時,能即時找到相應的使用方式,如同下圖 “APEX 技術指南-文章架構示意圖” 所示,此次介紹章節為 “ APU 資料型態 & 函式庫 “

 


APEX  技術指南 - 文章架構示意圖
 

若是對於 APEX 相關技術與知識尚未理解者,該篇文章難度略深,請從另一個系列的文章 “ APEX 基礎架構 ” 閱覽起。 

 

二.   APU 資料型態 & 函式庫

1.  APU 資料型態

探討完APU的硬體架構後,就要從軟體層面起手撰寫 APU kernel ,同時表示撰寫 APU 的動作設計。所謂的 APU 資料型態是相似於原生 C 的標準資料庫 ,原廠為了 APU 而設計了 向量型態。如同下表格所呈現 vec 或 v 開頭的即為 向量型態(Vector) ,而 int、bool 等等這些原生 C 標準資料庫的資料型態表示為 純量型態(Scalar)


APU 資料型態對照表
圖文出處 :  NXP文件 - APU-2_C_Programmer_Guide.pdf

 

其中如上一小節所敘述
純量資料(Scalar) 將存放於 DMEM 、並由 ALU 純量算術邏輯單元進行運算。
向量資料(Vector) 將存放於 CMEM 、並由 vALU 向量算術邏輯單元進行運算。

 

 

2.  APU 內建運算子

撰寫 APU Kernel 必須透過純量型態與向量型態的搭配使用,並結合各個運算子。即可應用各式各樣的算法於 APU 中。以下將介紹 APU 內建的運算子有哪些…


APU 內建運算子對照表
圖文出處 : NXP文件 - APEX2_emu_UserGuide.pdf

 

引用先前概念,可將 APU 視為一個分工者,將整張影像資料切割成數個區域並適當分工於數個 CU 進行運算,這樣就能在大幅度縮短處理時間!!


接下來這系列的篇章,將會介紹 APU 整個硬體架構、硬體動作的流程,以及 APU 的特色!! 屆時就可以好好運用此篇的介紹!!

 

3.  APU 內建函式庫

除了結合各個運算子,亦可以搭配 APU 內建函式。以下將介紹有哪些 APU 內建所提供的函示庫。順便一提,若需更精確地查看該函式用法,請至 /s32v234_sdk\tools\emu\apu\src 查閱。


 APU 內建函式庫對照表
圖文出處 : NXP文件 - APEX2_emu_UserGuide.pdf

 

如下表所示,為 apu_vec.hpp 內所提供的函式。這裡也是 APU 所使用到的基本函式,故介紹如下…


APU 內建函式庫對照表-2
圖文出處 : NXP文件 - APEX2_emu_UserGuide.pdf

 

以上為 APU 的資料型態與函式庫的介紹,撰寫使用上與 C 語言極為類似,而概念卻大有不同。以加法而言,向量矩陣的加法是指兩個矩陣相加,反之原本的 C 語言就只是單純的兩值相加。而下一篇文章將會教導如何建置 APU Kernel, 敬請期待!!

 

三.  參考文件

[1] NXP Official website : https://www.nxp.com/
[2] VisionSDK_ProgrammingExamples.pdf
[3] VisionSDK_UserGuide.pdf
[4] VisionSDK_SUMat_UMat.pdf
[5] UG-10328-01-09_APEX-CV_Base_Library .pdf
[6] UG-10328-02-11_APEX-CV_Pro_Library.pdf
[7] UG-10267-03-14-ACF_User_Guide.pdf
[8] UG-10301-00-06_APU-2_C_Programmer_Guide pdf


如有任何相關 APEX 技術問題,歡迎至博文底下留言提問 !!
接下來還會分享更多 APEX 的技術文章 !!敬請期待 【 ATU Book-S32V系列 】 !!

 

 


 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論