• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向異構(gòu)并行系統(tǒng)的典型編程模型的分析與研究

      2016-11-02 07:22:40曹君
      中國新通信 2016年18期
      關(guān)鍵詞:同構(gòu)加速器異構(gòu)

      曹君

      【摘要】 隨著半導(dǎo)體技術(shù)的發(fā)展,在高性能計算領(lǐng)域中異構(gòu)眾核系統(tǒng)的設(shè)計已經(jīng)成為技術(shù)發(fā)展的趨勢和學(xué)術(shù)研究的熱點。隨之而來的基于異構(gòu)系統(tǒng)上的編程,主要面臨以下幾個方面的挑戰(zhàn):第一方面就是針對異構(gòu)平臺同時在CPU+GPU上編程復(fù)雜;第二就是針對異構(gòu)平臺的移植性。原有的編程模型(CILK、OpenMP、CUDA)都是針對特定平臺的,可移植性比較差。那么針對異構(gòu)平臺的編程模型隨之產(chǎn)生。本文針對PGI等公司提出的異構(gòu)平臺的編程模型openACC進行分析與研究。

      【關(guān)鍵詞】 異構(gòu)眾核系統(tǒng) 異構(gòu)編程模型 GPU openACC[1]

      隨著硬件技術(shù)的發(fā)展,在高性能計算領(lǐng)域中從單核到多核的發(fā)展,但由于功耗、互連、設(shè)計復(fù)雜度三方面因素的限制,性能并不能通過增加計算核心數(shù)帶來提升,眾核設(shè)計就成為技術(shù)發(fā)展的趨勢和學(xué)術(shù)研究的熱點。目前面向高性能的眾核處理器分為同構(gòu)加速器的方式和異構(gòu)加速器的方式。同構(gòu)加速器如:Intel MIC/Xeon Phi眾核協(xié)處理器;nVIDIA公司自家GPU架構(gòu)General Purpose computing on graphics Processing Units GPGPU平臺。異構(gòu)加速器,2016年6月份第47屆全球頂級超級計算機TOP500榜單中位于榜首的Sunway TaihuLight - Sunway MPP, Sunway SW26010 260C 便是異構(gòu)眾核處理器結(jié)構(gòu)。第二名的天河2 號結(jié)合Intel Ivy Bridge 多核處理器和Intel Xeon Phi 眾核協(xié)處理器的混合架構(gòu)。

      為了解決異構(gòu)編程帶來的復(fù)雜性和移植性的問題,異構(gòu)平臺上的編程模型已經(jīng)被廣泛的使用和優(yōu)化。如:PGI公司等提出的openACC;Khronos Group宣布成立GPU通用計算開放行業(yè)標(biāo)準(zhǔn)工作組,以蘋果的提案為基礎(chǔ)創(chuàng)立OpenCL行業(yè)規(guī)范;微軟Visual Studio和C++編程語言的新擴展C++ AMP等都是異構(gòu)平臺的并行編程模型[2]。本文首先針對異構(gòu)平臺面臨得挑戰(zhàn)做簡要描述,分別分析和研究OpenACC異構(gòu)并行編程模型,總結(jié)未來異構(gòu)編程模型的發(fā)展。

      一、異構(gòu)平臺面臨的挑戰(zhàn)

      CPU-GPU異構(gòu)眾核系統(tǒng)與同構(gòu)系統(tǒng)相比在編程方面面臨著一些問題。第一,GPU之間的通信、CPU與GPU之間的通信、GPU存儲空間的管理都是用戶負(fù)責(zé)的;第二,可移植性差,由于第一種描述的,CPU-GPU之間的通信都是用戶負(fù)責(zé)的,而異構(gòu)平臺具有不同的硬件架構(gòu)、編程模型、cache大小等,代碼移植比較復(fù)雜,及時移植后,很難達(dá)到高性能,需要深入了解新的異構(gòu)平臺特點,針對性的重新進行性能優(yōu)化。第三,GPU的代碼的調(diào)試比較困難,多個線程間是異步執(zhí)行的,產(chǎn)生的錯誤或者異常是很難復(fù)現(xiàn)的,導(dǎo)致錯誤或者異常很難被定位,只有通過邏輯判斷,或者打印輸出等輔助調(diào)試。

      二、OpenACC編程模型

      PGI公司等提出的OpenACC克服了上一章節(jié)中提到的異構(gòu)平臺面臨的挑戰(zhàn),編程簡單,在串行代碼上增加幾句編程制導(dǎo)就實現(xiàn)了并行化,再經(jīng)過異構(gòu)平臺特點和串行程序的特點進行性能調(diào)優(yōu),就可以實現(xiàn)程序的并行化。更新硬件時,需要手工改動的代碼僅僅是編譯和運行的MAKEFILE文件,代碼的手工改動量是很小的。

      2.1 OpenACC的執(zhí)行模型

      OpenACC的執(zhí)行模型是host指導(dǎo)加速設(shè)備的運行,形成協(xié)作的一種執(zhí)行模型。在大型程序執(zhí)行過程中,串行部分是host執(zhí)行,當(dāng)出現(xiàn)熱點函數(shù)的計算時,在host控制下熱點函數(shù)交給加速設(shè)備執(zhí)行。熱點函數(shù)在加速設(shè)備上的執(zhí)行過程:在加速設(shè)備上分配私有數(shù)據(jù)空間并加載熱點函數(shù)代碼;將所需的數(shù)據(jù)從MMEM加載到加速器的私有數(shù)據(jù)空間中,加速設(shè)備進行執(zhí)行,并將結(jié)果從加速設(shè)備的數(shù)據(jù)空間傳輸?shù)組MEM中;釋放掉加速設(shè)備上申請的數(shù)據(jù)空間。

      2.2 OpenACC的存儲模型

      在同構(gòu)系統(tǒng)上,CPU的片內(nèi)存儲模式是軟件cache結(jié)構(gòu);片外存儲模式則是同享的模式。因此數(shù)據(jù)只能分配在片外存儲中,且數(shù)據(jù)是同享的,并不需要顯示的進行CPU和加速設(shè)備之間的通信。而在異構(gòu)系統(tǒng)中,數(shù)據(jù)可分配在CPU或者加速設(shè)備的局部存儲的多個位置,數(shù)據(jù)的分配和管理起來比較復(fù)雜,加速設(shè)備間的通信是通過直接內(nèi)存訪問(Direct Memory Access)的方式由程序員進行顯示的調(diào)用才能實現(xiàn)。

      2.3 OpenACC指令語法

      OpenACC指令語法包括:加速計算構(gòu)件、循環(huán)映射構(gòu)件、組合編譯、加速數(shù)據(jù)區(qū)構(gòu)件、同步和執(zhí)行導(dǎo)語、加速編譯指示的子句等。下面以c代碼為例簡單介紹OpenACC指令語法。

      Fortran語言編譯指示格式如下:(!$acc間不能有其它字符,其它類似)

      !$acc directive-name [clause[ [,] clause]...] new-line

      c$acc directive-name [clause[ [,] clause]...] new-line

      *$acc directive-name [clause[ [,] clause]...] new-line

      三、未來異構(gòu)編程模型的發(fā)展

      異構(gòu)編程模型是否能提供更加高效的性能優(yōu)化,程序在異構(gòu)平臺上并行性的研究的最終目的是想達(dá)到高效的性能加速。而現(xiàn)有的異構(gòu)編程模型提供的構(gòu)件仍然需要程序員了解異構(gòu)的架構(gòu),硬件特征,才能達(dá)到想要達(dá)到的性能優(yōu)化,那么,根據(jù)不同的硬件細(xì)節(jié)設(shè)置不同的編程導(dǎo)語,便成為未來研究的一個方向。

      參 考 文 獻(xiàn)

      [1]OpenAcc: Directives for Accelerators. 2013. http://www.openacc-standard.org/

      [2]王文義,王晗. 基于多核與眾核結(jié)構(gòu)的并行編程模型研究[J].中原工學(xué)院報,2014,03:52-56.

      猜你喜歡
      同構(gòu)加速器異構(gòu)
      輪滑加速器
      化學(xué)工業(yè)的“加速器”
      巧用同構(gòu)法解決壓軸題
      試論同課異構(gòu)之“同”與“異”
      全民小康路上的“加速器”
      少先隊活動(2021年6期)2021-07-22 08:44:24
      指對同構(gòu)法巧妙處理導(dǎo)數(shù)題
      同構(gòu)式——解決ex、ln x混合型試題最高效的工具
      高等代數(shù)教學(xué)中關(guān)于同構(gòu)的注記
      異構(gòu)醇醚在超濃縮洗衣液中的應(yīng)用探索
      overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
      阿拉尔市| 开原市| 龙南县| 科技| 客服| 东乌珠穆沁旗| 漯河市| 筠连县| 龙海市| 漯河市| 宁乡县| 江西省| 周宁县| 通渭县| 丹寨县| 沽源县| 平原县| 灯塔市| 额济纳旗| 大兴区| 咸丰县| 忻州市| 天柱县| 淅川县| 胶南市| 闽侯县| 合作市| 龙井市| 罗山县| 福海县| 成武县| 黔西县| 秦皇岛市| 若尔盖县| 文安县| 黄龙县| 沛县| 昌宁县| 大同市| 南和县| 日喀则市|