溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TMS320C6678處理器是如何進行OpenMP多核通信案例

發(fā)布時間:2021-12-23 09:14:43 來源:億速云 閱讀:190 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家介紹TMS320C6678處理器是如何進行OpenMP多核通信案例,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

如何用TMS320C6678處理器進行OpenMP多核通信案例

下面主要介紹TMS320C6678處理器開發(fā)中比較常用的多核通信方式:OpenMP,主要基于創(chuàng)龍科技TL6678-EasyEVM評估板進行演示。

TMS320C6678處理器是如何進行OpenMP多核通信案例

圖1 TL6678-EasyEVM評估板

TL6678-EasyEVM是一款基于TI KeyStone架構C6000系列TMS320C6678八核C66x定點/浮點高性能處理器設計的高端多核DSP評估板,由核心板與底板組成。核心板經(jīng)過專業(yè)的PCB Layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應用環(huán)境。

評估板接口資源豐富,引出雙路千兆網(wǎng)口、SRIO、PCIe等高速通信接口,方便用戶快速進行產(chǎn)品方案評估與技術預研。

開發(fā)案例主要包括:?

(1) 裸機開發(fā)案例

(2) RTOS(SYS/BIOS)開發(fā)案例

(3) IPC、OpenMP多核開發(fā)案例

(4) SRIO、PCIe、雙千兆網(wǎng)口開發(fā)案例

(5) 圖像處理開發(fā)案例

(6) DSP算法開發(fā)案例

(7) 串口、網(wǎng)絡遠程升級開發(fā)案例

案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點site.tronlong.com/pfdownload獲取。

2.1 OpenMP簡介

OpenMP是一種多核開發(fā)軟件框架,其主要特性如下:

(1) 可跨平臺使用,代碼兼容性強。

(2) 以共享內(nèi)存為通信基礎。

(3) 支持C/C++以及Fortran語言。

(4) 一般基于SYS/BIOS運行。

TMS320C6678處理器是如何進行OpenMP多核通信案例

圖2

2.2 基本語法

#pragma omp 指令 [子句 [ [ [,]子句 ] ... ]

{

...

}

表1

指令

說明

parallel

開始并行執(zhí)行語句

for

在多個線程中并行執(zhí)行for循環(huán)

sections

包含多個可并行執(zhí)行的sectone結構體

single

單線程執(zhí)行

master

主線程執(zhí)行

critical

任意時刻僅可被單個線程執(zhí)行

barrier

指定屏障,用于同步所有線程

taskwait

等待子線程完成

atomic

確保指定內(nèi)存位置執(zhí)行原子更新操作

flush

使線程當前內(nèi)存數(shù)據(jù)與實際內(nèi)存數(shù)據(jù)一致

ordered

并行執(zhí)行的for循環(huán)將按循環(huán)體變量順序執(zhí)行

threadprivate

指定變量為本地存儲

表2

子句

說明

default

控制parallel或task結構體中變量數(shù)據(jù)的共享屬性

shared

parallel或task結構中,一個或多個變量為共享變量

private

一個或多個變量為本地變量

firstprivate

一個或多個變量為本地變量,且變量值為并行結構執(zhí)行前的值

lastprivate

一個或多個變量為本地變量,且變量值為并行結構執(zhí)行后的值

reduction

一個或多個變量為本地變量,但變量值將根據(jù)不同的運算符來決定,執(zhí)行完成后變量值將被更新

copyin

使線程本地變量值與主線程變量值相同

copyprivate

使屬于parallel區(qū)域的變量值在不同線程中相同

schedule

設置for循環(huán)并行執(zhí)行方式:dynamic、guided、runtime和static

num_threads

線程數(shù)目

if

并行語句執(zhí)行條件

nowait

忽略線程同步等待

以裸機的omp_matavec案例為例,使用場景的概要流程圖如下。

C66xx_0核心創(chuàng)建主線程,通過OpenMP框架加載matvec算法至C66xx_0~C66xx_7核心進行并行運算,從而減少C66xx_0核心負載,并可加快運算速度。

現(xiàn)可向廠家免費申請TL6678-EasyEVM評估板進行快速評估,免費哦!技術研討會:79635273、332643352

TMS320C6678處理器是如何進行OpenMP多核通信案例

圖3

2.3 代碼分析

以裸機的omp_matavec案例為例進行代碼分析,見圖中注釋。

TMS320C6678處理器是如何進行OpenMP多核通信案例

圖4

關于TMS320C6678處理器是如何進行OpenMP多核通信案例就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI