• <form id="coday"><tbody id="coday"></tbody></form>
    <var id="coday"></var>
  • <big id="coday"><tr id="coday"><label id="coday"></label></tr></big>
    電子產(chǎn)業(yè)一站式賦能平臺(tái)

    PCB聯(lián)盟網(wǎng)

    搜索
    查看: 3373|回復(fù): 3
    收起左側(cè)

    TMS320C6678處理器如何進(jìn)行OpenMP多核通信案例

    [復(fù)制鏈接]

    131

    主題

    512

    帖子

    1666

    積分

    三級(jí)會(huì)員

    Rank: 3Rank: 3

    積分
    1666
    跳轉(zhuǎn)到指定樓層
    樓主
    發(fā)表于 2021-3-26 10:24:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
    本文主要介紹TMS320C6678處理器開發(fā)中比較常用的多核通信方式:OpenMP,主要基于創(chuàng)龍科技TL6678-EasyEVM評(píng)估板進(jìn)行演示。&#8203;* ?3 H& N  q8 w: R" }

    9 b' E2 n3 }* c  u; w, r圖1 TL6678-EasyEVM評(píng)估板
    ) S" X  [. a% q0 C
    , f. X  x; B) w0 I' d. }TL6678-EasyEVM是一款基于ti KeyStone架構(gòu)c6000系列TMS320C6678八核C66x定點(diǎn)/浮點(diǎn)高性能處理器設(shè)計(jì)的高端多核DSP評(píng)估板,由核心板與底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測(cè)試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
    * B5 k# q) `5 [. E0 a) a評(píng)估板接口資源豐富,引出雙路千兆網(wǎng)口、SRIO、PCIe等高速通信接口,方便用戶快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。. i- @% E4 V2 ~; c" y( V
    4 D  h1 A" S! \/ o
    開發(fā)案例主要包括:& c) m4 i! `3 H# e
    " T8 z: N6 Y. z; E/ F0 I. v
    (1) 裸機(jī)開發(fā)案例% |' R# b7 u1 \) L5 @) `! I! d
    (2) RTOS(SYS/BIOS)開發(fā)案例
    ! U5 S: L  W4 y( e& V(3) IPC、OpenMP多核開發(fā)案例
    8 o8 D2 m4 Q- u2 c- |(4) SRIO、PCIe、雙千兆網(wǎng)口開發(fā)案例
    , t( o0 P- `2 A, H' Z(5) 圖像處理開發(fā)案例
    + s* r$ n5 I) d$ S3 a" y(6) DSP算法開發(fā)案例  H. b3 G7 P4 L' O  g
    (7) 串口、網(wǎng)絡(luò)遠(yuǎn)程升級(jí)開發(fā)案例
    0 F3 D' X) E% T- E" ]8 b案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload獲取。, ~: Q0 R$ N0 y- R# j

    7 H9 N, d/ H: ?* l
    . R" i. |$ Z- n: e+ f2.1 OpenMP簡(jiǎn)介
    6 t; t3 O  i* I' {* D
    , J# ]/ R( j9 r' ?! K9 POpenMP是一種多核開發(fā)軟件框架,其主要特性如下:
    2 z) f+ N* w# S" U  N) Z
    : M! z+ \& |+ B1 g! `' q) t! r(1) 可跨平臺(tái)使用,代碼兼容性強(qiáng)。
    : g9 o9 r4 ^: ^8 p  E& F3 h1 |9 A, w(2) 以共享內(nèi)存為通信基礎(chǔ)。& J9 L# c" o  Q: Q
    (3) 支持C/C++以及Fortran語言。4 g2 _# k& J8 c' l$ Y% E2 g
    (4) 一般基于SYS/BIOS運(yùn)行。. i8 G) U6 n/ i4 }4 N! O
    1 w2 p2 C( [" c6 n
    9 m  R% c6 w$ g
    &#8203;) G2 u$ a1 ^9 |
    圖2
    5 ^7 y, Q1 R, Q
    ! T. S/ S4 k* i! J! v- G% v* K, F
    , `$ C  r7 W! C4 i1 V/ Q2.2 基本語法
    % q8 H: f8 Q3 Y#pragma omp 指令 [子句 [ [ [,]子句 ] ... ]  j% t  Y8 H1 D5 p" Z
    {
    ) K( o9 V5 F/ H: m* O$ M...1 O  A( ^  e1 c3 Z' x
    }! v  S: W( V, l# T4 Z

    2 ]0 F2 n6 \/ A5 X% l- A0 a& v' n表1
    ( T: I3 o( ~; |* {' F
    指令
    $ ~7 _( l% a( G2 c7 V: K
    說明+ L0 c) c2 T$ g7 g, n
    parallel7 T* M. ~- ~; C) ?( u# H
    開始并行執(zhí)行語句. Y7 `6 x  k( ~: D" P5 c# G. P: H
    for$ F6 m% M, ~6 d
    在多個(gè)線程中并行執(zhí)行for循環(huán)' q4 B' h! j" j; U. b3 X
    sections
    ! j2 x! W( }* D
    包含多個(gè)可并行執(zhí)行的sectone結(jié)構(gòu)體" A8 `& w: N7 Q- Y0 t' R) ~
    single
    / S1 ~$ t2 ?- h) \4 g
    單線程執(zhí)行
    4 P% S: Y6 @: ~% ]5 ~$ J
    master
    ; u* v* J/ W; H+ h' w
    主線程執(zhí)行  Q# Q, R( }' S. O+ ~$ p
    critical
    - ]1 s' C: Y- v# d
    任意時(shí)刻僅可被單個(gè)線程執(zhí)行, n! N% y6 q7 m  @5 _
    barrier) e1 X- Y; a, _7 W
    指定屏障,用于同步所有線程* |9 N6 [$ l; [3 U
    taskwait& F0 a  a& n4 {2 e
    等待子線程完成
    # J+ T! c" C; \4 C, x, E
    atomic6 N) `4 \* M; I0 u2 P1 Y" F
    確保指定內(nèi)存位置執(zhí)行原子更新操作
    $ n, O4 d6 [' n: ]+ P
    flush
    # [" O( n; R4 h- r$ M  n2 A7 o
    使線程當(dāng)前內(nèi)存數(shù)據(jù)與實(shí)際內(nèi)存數(shù)據(jù)一致: D" ^0 \  T2 n0 W8 {1 Z
    ordered
    ' P$ o! o( ?8 r0 Z; J
    并行執(zhí)行的for循環(huán)將按循環(huán)體變量順序執(zhí)行( N, W) o# J6 H  k
    threadprivate
    0 F& G* Y7 w2 Q0 k, {' P& J  |
    指定變量為本地存儲(chǔ)" f9 n8 [5 P# ~( S! w4 T5 b
    7 f8 B1 E7 {  y& N' e& i
    表2% O$ t1 [2 v' X3 c& ]8 I
    子句
    : j  [! G) P% _- n9 \# I4 G0 @- [
    說明
    " }6 q, U9 [4 x7 E) S
    default
    4 ]6 l$ f) Q6 M  |6 ]/ ~$ _1 c1 C
    控制parallel或task結(jié)構(gòu)體中變量數(shù)據(jù)的共享屬性8 T: s0 n/ d5 \- t
    shared
    / C( d2 W& a% w7 S) H$ j/ r
    parallel或task結(jié)構(gòu)中,一個(gè)或多個(gè)變量為共享變量
    4 ~6 v$ F( y0 J! p. [
    private3 r% K1 v; D6 ~6 p7 Y: \* ~, X( M
    一個(gè)或多個(gè)變量為本地變量( n4 {/ F7 i( _8 V; ]
    firstprivate
    7 f/ r; H& G+ R
    一個(gè)或多個(gè)變量為本地變量,且變量值為并行結(jié)構(gòu)執(zhí)行前的值0 A$ E5 E4 z  q1 x9 H
    lastprivate4 X8 Y8 D: v2 f/ ~5 [( y
    一個(gè)或多個(gè)變量為本地變量,且變量值為并行結(jié)構(gòu)執(zhí)行后的值1 B4 c- t3 [! h  C
    reduction* o% U" y! Y& ?5 V
    一個(gè)或多個(gè)變量為本地變量,但變量值將根據(jù)不同的運(yùn)算符來決定,執(zhí)行完成后變量值將被更新
    8 b6 @' o  q) H
    copyin
    0 ]& |, A, u3 i* i9 ~$ g
    使線程本地變量值與主線程變量值相同
    ( y8 [( j- }4 x: }/ Z
    copyprivate9 c' f6 ?# K9 g/ J; C& Y7 q
    使屬于parallel區(qū)域的變量值在不同線程中相同
    + s" q9 }+ W/ A5 r* V
    schedule
    . T; Z! l5 [  ~9 ^
    設(shè)置for循環(huán)并行執(zhí)行方式:dynamic、guided、runtime和static5 h% }. w2 v/ |0 C8 |
    num_threads
    8 ^) S7 b* h! _7 B
    線程數(shù)目
    & y9 T- X- a% f
    if
    ( M' t5 K  q% X6 q
    并行語句執(zhí)行條件
    * ~% e" @) y6 i. g- E. |  `
    nowait+ z; o& \0 h* y4 m. h  {: u
    忽略線程同步等待! N% p0 g, L6 W) d2 K
    8 o$ F+ j4 R( l! X
    以裸機(jī)的omp_matavec案例為例,使用場(chǎng)景的概要流程圖如下。1 `0 ?# F# a1 r6 T. k7 G9 g
    6 R0 {* D7 m* o$ @; w. f
    C66xx_0核心創(chuàng)建主線程,通過OpenMP框架加載matvec算法至C66xx_0~C66xx_7核心進(jìn)行并行運(yùn)算,從而減少C66xx_0核心負(fù)載,并可加快運(yùn)算速度。- a8 `0 {$ b: w% g, b# r2 X
    現(xiàn)可向廠家免費(fèi)申請(qǐng)TL6678-EasyEVM評(píng)估板進(jìn)行快速評(píng)估,免費(fèi)哦!技術(shù)研討會(huì):79635273、3326433520 g4 i, V3 ?) M  B& }

    * a7 K$ i% {$ I2 O. w3 G) U# @: T&#8203;
    % p' j9 N& O0 j. F圖3
    . l7 N9 E0 j, s+ R' F0 m3 Q/ t# X# e1 N" c* N8 N( q" Y" Y
    8 ]" A. O$ m# d8 e2 ?4 r# p9 \
    2.3 代碼分析
    1 i; n/ \+ h- @& G- ~* K4 R% S以裸機(jī)的omp_matavec案例為例進(jìn)行代碼分析,見圖中注釋。
    & g+ Q4 v1 R7 }  a6 h
      G* A/ t3 W* i" x/ B' _% d1 a) \9 e! M" i* x

    1 G$ t* O# d" L+ B4 C&#8203;
    8 E  o: {6 U9 {8 ?( b
    3 |* }1 z5 D5 C4 G圖4' j# @( n0 }0 e5 s1 C
    ( h2 A( X2 e8 L* ~

    . v' N% M% l8 l+ ^% j更多推薦
    ) |/ [9 z2 C: H* o5 ~! G4 nC6678+K7視頻采集處理方案4 e6 Z. ^4 q! g" J- r

    : [  W4 R8 u0 W/ j" S  F+ g6 ?" L&#8203;
    ' l2 I/ E: S! K" s圖5
    2 k- o  R6 c, j; @
    : k" s- I) M) T1 g6 ^/ [FPGA+DSP的高速AD采集處理開發(fā)詳解
    ' G% \9 n5 d# r2 u+ X. n$ ?# X# s$ I" Y: D4 o
    &#8203;
    , a  i! @' H! [. z- I0 `0 N, E圖6
    / {, u0 U/ B# u: H- T: {2 L4 Y

    131

    主題

    512

    帖子

    1666

    積分

    三級(jí)會(huì)員

    Rank: 3Rank: 3

    積分
    1666
    沙發(fā)
    發(fā)表于 2021-3-26 10:24:29 | 只看該作者
    需要做PCB線路板的可以聯(lián)系我' x7 N; h' ^5 b) W0 R) w4 |
    ( A4 l* m. Q7 l! R2 V* {& J, `
    13651479995

    0

    主題

    101

    帖子

    410

    積分

    一級(jí)會(huì)員

    Rank: 1

    積分
    410
    板凳
    發(fā)表于 2021-7-17 20:07:08 | 只看該作者
    6666666666

    0

    主題

    13

    帖子

    34

    積分

    一級(jí)會(huì)員

    Rank: 1

    積分
    34
    地板
    發(fā)表于 2021-11-4 23:34:08 | 只看該作者
    功能能性替代6678的國(guó)產(chǎn)多核定點(diǎn)和浮點(diǎn)數(shù)字處理器,國(guó)產(chǎn)替代是趨勢(shì),需要的聯(lián)系QQ:191321088

    發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表