創龍首頁 >關于創龍 > 新聞資訊 > 技術文章

聯系我們

Contact Us

公司總機:020-8998-6280

技術熱線:020-3893-9734

技術郵箱:support@tronlong.com

銷售郵箱:sales@tronlong.com

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

2021/01/28

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


本文主要介紹TMS320C6678處理器開發中比較常用的多核通信方式:OpenMP,主要基于創龍科技TL6678-EasyEVM評估板進行演示。



圖1 TL6678-EasyEVM評估板


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


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


開發案例主要包括:?

(1) 裸機開發案例

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

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

(4) SRIO、PCIe、雙千兆網口開發案例

(5) 圖像處理開發案例

(6) DSP算法開發案例

(7) 串口、網絡遠程升級開發案例

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


2.1 OpenMP簡介

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

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

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

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

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




圖2


2.2 基本語法


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

{

...

}


表1

指令

說明

parallel

開始并行執行語句

for

在多個線程中并行執行for循環

sections

包含多個可并行執行的sectone結構體

single

單線程執行

master

主線程執行

critical

任意時刻僅可被單個線程執行

barrier

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

taskwait

等待子線程完成

atomic

確保指定內存位置執行原子更新操作

flush

使線程當前內存數據與實際內存數據一致

ordered

并行執行的for循環將按循環體變量順序執行

threadprivate

指定變量為本地存儲


表2

子句

說明

default

控制parallel或task結構體中變量數據的共享屬性

shared

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

private

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

firstprivate

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

lastprivate

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

reduction

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

copyin

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

copyprivate

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

schedule

設置for循環并行執行方式:dynamic、guided、runtime和static

num_threads

線程數目

if

并行語句執行條件

nowait

忽略線程同步等待


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

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




圖3


2.3 代碼分析

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




圖4


免費試用

現可向廠家免費申請TL6678-EasyEVM評估板進行快速評估,免費哦!



技術研討會:79635273、332643352


更多推薦

C6678+K7視頻采集處理方案




圖5



FPGA+DSP的高速AD采集處理開發詳解




圖6


更多案例詳情或建議,歡迎留言與我溝通了解。

創龍官方微信公眾號

Copyright © 2013~2025 廣州創龍電子科技有限公司 All Rights Reserved  | 粵ICP備15055271號