楊小藝,趙榮彩,王洪生,韓林,徐坤坤
面向DCU非一致控制流的編譯優(yōu)化
楊小藝1,2,趙榮彩1,2,王洪生2*,韓林1,2,徐坤坤1,2
(1.鄭州大學(xué) 計算機(jī)與人工智能學(xué)院,鄭州 450001; 2.國家超級計算鄭州中心,鄭州 450001)( ? 通信作者電子郵箱whs1814@foxmail.com)
國產(chǎn)DCU采用單指令多線程(SIMT)的并行執(zhí)行模型,在程序執(zhí)行時核函數(shù)內(nèi)會產(chǎn)生非一致控制流,導(dǎo)致線程束中的線程部分只能串行執(zhí)行,即線程束分化。針對核函數(shù)的性能因線程束分化受到嚴(yán)重制約的問題,提出一種減少線程束分化時間的編譯優(yōu)化方法——部分控制流合并(PCFM)。首先,通過散度分析找到同構(gòu)且含有大量相同指令和相似指令的可融合發(fā)散區(qū)域;其次,統(tǒng)計合并后節(jié)省的指令周期百分比,從而評估可融合發(fā)散區(qū)域的融合盈利;最后,查找對齊序列,并合并有收益的可融合發(fā)散區(qū)域。在DCU上使用PCFM測試從圖形處理器(GPU)基準(zhǔn)測試套件Rodinia和經(jīng)典的排序算法中選擇的測試用例,實驗結(jié)果表明,PCFM對測試用例能夠取得1.146的平均加速比,與分支融合+尾合并方法相比,使用PCFM的加速比平均提高了5.72%。可見,所提方法減少線程束分化的效果更好。
DCU;單指令多線程;線程束分化;復(fù)雜控制流;編譯優(yōu)化
國產(chǎn)DCU (Deep Computer Unit)[1]的單指令多線程(Single Instruction Multiple Thread, SIMT)并行執(zhí)行模型采用鎖步的機(jī)制,使一個線程束在某一時刻只能有一個活躍的程序計數(shù)器(Program Counter, PC)。但是,在很多通用的并行應(yīng)用程序中存在頻繁的分支指令和不規(guī)則的數(shù)據(jù)訪問,導(dǎo)致非一致的控制流行為,此時線程束中的線程根據(jù)相應(yīng)分支指令的執(zhí)行結(jié)果選擇不同的執(zhí)行路徑。由于線程束中的所有線程在某一周期內(nèi)必須執(zhí)行相同的指令,因此在遇到非一致控制流的情況下線程束中的線程只能串行執(zhí)行,即線程束分化。
圖1為非一致控制流的執(zhí)行示例,圖1(a)是分支轉(zhuǎn)移的控制流結(jié)構(gòu),其中:每個方塊代表一個基本塊,基本塊中每位數(shù)字表示一位掩碼位,代表對應(yīng)的單指令多數(shù)據(jù)流(Single Instruction Multiple Data, SIMD)通道:“1”表示該通道上有活躍線程執(zhí)行,“0”表示該通道空閑。圖1(b)展示了圖1(a)中的線程在通道中的具體執(zhí)行情況。從圖1(b)中可以看出,當(dāng)出現(xiàn)線程束分化時,SIMD通道不能滿負(fù)載運行,并且線程束中的線程串行執(zhí)行,導(dǎo)致計算資源的利用率低,嚴(yán)重制約了性能。如在極端情況下,若線程束中的64個線程均執(zhí)行不同的分支路徑,則理論上性能將降低為原來的1/64。因此,有必要研究減少線程束分化時間的優(yōu)化技術(shù)。
圖1 非一致控制流執(zhí)行示例
減少線程束分化時間,就是減少線程串行執(zhí)行的時間,即壓縮每個分支單獨運行的時間。在傳統(tǒng)的編譯優(yōu)化技術(shù)中,減少線程束分化時間的主要方法是分支融合[2]和尾合并[3]。
圖2 分支融合示例
從圖2~3可以看出,分支融合和尾合并的實現(xiàn)條件較嚴(yán)苛,只對簡單的控制流有一定的優(yōu)化作用;然而,較多通用的并行應(yīng)用程序都有著非常復(fù)雜的控制流,傳統(tǒng)的編譯優(yōu)化技術(shù)并不能較好地解決這些問題。
圖3 尾合并示例
針對非一致控制流嚴(yán)重制約核函數(shù)性能的問題,本文提出一種減少線程束分化時間的編譯優(yōu)化方法——部分控制流合并(Partial-Control-Flow-Merging, PCFM)。該方法面向基本塊和區(qū)域,合并發(fā)散控制流中擁有大量相同指令和相似指令的基本塊?基本塊、區(qū)域?區(qū)域。與分支融合和尾合并方法僅提升和下沉相同指令相比,PCFM的適用范圍更廣、融合區(qū)域更大,可以有效減少線程束分化的時間,提高活躍線程數(shù)。
本文的主要工作如下:
1)分析核函數(shù)中的復(fù)雜控制流,識別同構(gòu)且含有大量相同指令和相似指令的可融合的發(fā)散區(qū)域。
2)統(tǒng)計合并后節(jié)省的指令周期百分比,計算融合盈利,評估可融合發(fā)散區(qū)域。
3)使用分層序列對比方法查找對齊序列,對有收益的可融合發(fā)散區(qū)域?qū)崿F(xiàn)部分控制流的合并。
異構(gòu)系統(tǒng)架構(gòu)(Heterogeneous System Architecture, HSA)在超級計算機(jī)系統(tǒng)中得到了廣泛的使用,我國自主研發(fā)的新一代超級計算機(jī)“嵩山”超級計算機(jī)系統(tǒng)采用中央處理器(Central Processing Unit, CPU)+圖形處理器(Graphics Processing Unit, GPU)異構(gòu)體系結(jié)構(gòu)[4]。
異構(gòu)系統(tǒng)架構(gòu)(HSA)是將通用計算單元(Compute Unit, CU)和專用計算單元結(jié)合以加快處理速度的一種新興架構(gòu)。異構(gòu)計算表示在異構(gòu)系統(tǒng)上進(jìn)行并行計算,異構(gòu)計算根據(jù)計算任務(wù)的特點選擇適合的架構(gòu),使架構(gòu)的優(yōu)勢得到充分的發(fā)揮,更好地提升性能。在眾核異構(gòu)系統(tǒng)中,CPU+GPU異構(gòu)系統(tǒng)的適用范圍廣且能效比較優(yōu),已經(jīng)成為了主流架構(gòu),并在超級計算機(jī)系統(tǒng)中得到廣泛的應(yīng)用。
我國自主研發(fā)的新一代超級計算機(jī)“嵩山”超級計算機(jī)系統(tǒng)采用海光一號CPU+海光一號DCU加速器的異構(gòu)體系結(jié)構(gòu)?!搬陨健背売嬎銠C(jī)系統(tǒng)配備的海光一號DCU加速器是一種通用圖形處理器(General Purpose Graphics Processing Unit, GPGPU),每個DCU有60個CU,每個CU有64個計算核心。與CPU相比,DCU部署了大面積的CU,精簡了用于邏輯判斷、分支跳轉(zhuǎn)和中斷處理等功能的控制單元,因此DCU設(shè)備在面向多數(shù)據(jù)并行計算的問題和具有高算術(shù)密集度類型的應(yīng)用上有著更強(qiáng)的算力。
DCU對線程的組織通常分為三級:線程束(Wavefront)級、線程塊(Block)級和線程網(wǎng)格(Grid)級。線程束是CU中基本的執(zhí)行單元,線程塊由多個線程(Thread)構(gòu)成,多個線程塊構(gòu)成了線程網(wǎng)格。在具體執(zhí)行時,當(dāng)一個線程塊所在的網(wǎng)格被啟動后,該網(wǎng)格中的線程塊將分布在CU中,一旦線程塊被調(diào)度到一個CU上,線程塊中的線程會被進(jìn)一步劃分為線程束。DCU采用三級線程層次結(jié)構(gòu),從而在線程與線程處理的數(shù)據(jù)元素之間建立映射關(guān)系,圖4展示了DCU的線程層次結(jié)構(gòu)。
在DCU中,一個線程束由64個連續(xù)的線程組成,在一個線程束中,所有的線程按照SIMT方式執(zhí)行,即所有線程都執(zhí)行相同的指令,每個線程在私有數(shù)據(jù)上操作,線程與線程之間的通信通過共享存儲器和同步操作完成。
LLVM[5]的命名最早起源于底層虛擬機(jī)(Low Level Virtual Machine, LLVM)的首字母縮寫,但是隨著LLVM的發(fā)展,原有的內(nèi)涵發(fā)生了巨大的轉(zhuǎn)變,目前LLVM為模塊化和可重用的編譯器以及工具鏈的集合。
圖5展示了傳統(tǒng)的編譯器架構(gòu)和LLVM架構(gòu),可以看出,LLVM架構(gòu)是基于傳統(tǒng)的三段式架構(gòu)(前端、優(yōu)化、后端)設(shè)計的編譯器。與傳統(tǒng)的編譯器架構(gòu)相比,LLVM架構(gòu)可以擴(kuò)展新的前端和后端,支持更多的語言和設(shè)備(如C、Fortran、X86和Power PC等)。LLVM中不同的前端后端使用統(tǒng)一的中間代碼(LLVM Intermediate Representation, LLVM IR);優(yōu)化階段是一個通用的階段,因此針對統(tǒng)一的LLVM IR,可以高度復(fù)用優(yōu)化階段的工作。本文提出的PCFM就是針對LLVM IR進(jìn)行修改和優(yōu)化,PCFM通過識別且合并可融合的發(fā)散區(qū)域,減少分支串行執(zhí)行的時間,從而提升性能。
圖5 傳統(tǒng)編譯器架構(gòu)與LLVM架構(gòu)
圖6 復(fù)雜控制流示例
圖7 合并示例
PCFM主要包括4個步驟:1)識別編譯器中間代碼中的可融合發(fā)散區(qū)域;2)評估可融合發(fā)散區(qū)域;3)若有收益,則查找可融合發(fā)散區(qū)域的對齊序列;4)合并發(fā)散區(qū)域。
定義2 簡單區(qū)域。簡單區(qū)域是CFG的子圖。僅通過入口邊和出口邊連接剩余的CFG。
滿足以上任一條件的兩個單入口單出口子圖均可以合并,且不會給控制流引入額外的分化。
通過散度分析[6]識別程序中的發(fā)散區(qū)域。如圖8所示,若線程束中不同線程分支條件的計算值不一致,則認(rèn)為線程束在這個分支條件下是發(fā)散的,對該分支條件作一個發(fā)散標(biāo)記。如果分支條件依賴于數(shù)據(jù)或發(fā)散變量,如線程ID[7],后續(xù)需要對它進(jìn)行更加復(fù)雜的散度分析[8]。包含一個發(fā)散分支的最小CFG區(qū)域就是該分支對應(yīng)的發(fā)散區(qū)域,在找到發(fā)散區(qū)域后根據(jù)定義5找到可融合發(fā)散區(qū)域。
圖8 散度分析流程
找到可融合發(fā)散區(qū)域后,通過計算融合盈利值評估合并后的性能,根據(jù)評估的結(jié)果決定是否合并。
融合盈利計算分為基本塊的融合盈利計算和區(qū)域的融合盈利計算。它們的核心思想都是考慮在最佳情況下(即不考慮指令的執(zhí)行順序),兩個基本塊或兩個區(qū)域融合后節(jié)省的指令周期百分比。
為了保證合并后的正確性,PCFM在確保操作相對順序不變的情況下融合具有相同操作碼和兼容操作數(shù)類型的指令序列,其中操作碼相同、操作數(shù)兼容的指令稱為相似指令。查找對齊序列[9]是查找在操作相對順序上保持一致的相似指令序列。若能在可融合發(fā)散區(qū)域中找到最大數(shù)量的對齊序列進(jìn)行合并,則可以節(jié)省的指令周期百分比最大。
PCFM使用史密斯?沃特曼算法[10]計算可融合發(fā)散區(qū)域中指令的最佳對齊方式。在史密斯算法中,相似指令被認(rèn)為是可以對齊的指令,具有較高延遲的指令對齊優(yōu)先于具有較低延遲的指令對齊。此外,該算法對未對齊的指令也使用了間歇懲罰以處理它產(chǎn)生的額外分支,并且可融合發(fā)散區(qū)域合并算法與指令對齊算法之間相互獨立。
史密斯算法計算指令對齊序列分為兩個步驟:首先建立一個盈利矩陣,計算每對指令的盈利值;其次反向遍歷盈利矩陣,找到指令的最佳對齊方式。
盈利矩陣的計算公式如下:
圖9 指令對齊算法
得到融合盈利和指令對齊序列后,合并可融合發(fā)散區(qū)域[11]。指令對齊序列的合并分為指令對齊和指令非對齊這兩種情況,針對不同的情況采取不同的合并措施。
圖10 復(fù)雜控制流示例1對齊指令的合并
圖12 退出塊的合并
在基本塊合并的過程中會引入具有相同后繼節(jié)點的分支、冗余的phi指令,針對這些情況后續(xù)會對它們進(jìn)行消除。
算法1 子圖合并核心算法。
BuildNewBlock()
else{
RunPostOptimizations()
圖13展示了復(fù)雜控制流示例1應(yīng)用PCFM后每個階段的轉(zhuǎn)換情況。
圖13 PCFM的核心算法的應(yīng)用
算法2 PCFM核心算法。
do{
在LLVM 12.0.0版本編譯器中實現(xiàn)針對非一致控制流的PCFM,并使用單節(jié)點、單DCU測試該方法的優(yōu)化效果。
采用的測試集取自GPU基準(zhǔn)測試套件Rodinia[13]和經(jīng)典的排序算法程序。選取了7個適用于PCFM的測試用例。
1)BITonic sort (BIT)[14]。排序網(wǎng)絡(luò)中一種比較順序和數(shù)據(jù)無關(guān)的算法,適合并行運算。
2)Speckle Reducing Anisotropic Diffusion (SRAD)[13]。取自基準(zhǔn)測試套件Rodinia,是一種基于偏微分方程的擴(kuò)散算法,用于在不犧牲圖像重要特征的情況下去除圖像中的散斑,廣泛應(yīng)用于超聲波和雷達(dá)成像領(lǐng)域。
3)MergeSort (MS)。建立在歸并操作上的一種有效的排序算法,通過并行的自下而上的合并排序?qū)崿F(xiàn),其中,合并的核函數(shù)包含依賴于數(shù)據(jù)的非一致性控制流。
4)N-QUeens (NQU)。使用回溯法找到將個Queens放置在×棋盤上并且不會相互攻擊的所有方式,使用的核函數(shù)來自GPGPU-sim[15]基準(zhǔn)套件,為15。
5)Partition and Concurrent Merge (PCM)[16]。一種基于奇偶合并排序的并行排序算法。PCM在數(shù)組的每個位置對已排序的元素執(zhí)行奇偶合并,導(dǎo)致具有嵌套數(shù)據(jù)依賴分支的循環(huán),給減少線程束分化算法提供了機(jī)會。
6)LU-Decomposition (LUD)[13]。取自基準(zhǔn)測試套件Rodinia中,是矩陣分解的一種,主要應(yīng)用于數(shù)值分析,復(fù)雜控制流減少線程束分化重點評估lud_perimeter內(nèi)核。
7)DCT quantization (DCT)(https://docs.nvidia.com/cuda/cuda-samples)。離散余弦變換,把目標(biāo)信號從復(fù)雜的時域信號分解為不同頻率強(qiáng)度的頻域信號,主要用于數(shù)據(jù)和圖像的壓縮中。
選取的7個測試用例的內(nèi)核中線程塊的大小都可以調(diào)節(jié)。在某些情況下,線程塊大小對線程束分化的影響較大,因此在測試過程中考慮了每個內(nèi)核在不同塊大小情況下使用PCFM的性能。表1展示了7個測試用例分別使用無控制流優(yōu)化、分支融合[2]+尾合并[3]和PCFM的性能對比,并以無控制流優(yōu)化的性能作為基準(zhǔn),且無控制流優(yōu)化下所有測試用例的加速比均為1.000。
從表1可以發(fā)現(xiàn),PCFM對選取的所有測試用例的平均加速比為1.146,分支融合+尾合并對選取的所有測試用例的加速比為1.084,因此PCFM的優(yōu)化能力更強(qiáng),加速比平均提高了5.72%。BIT和SRAD使用PCFM的加速效果最顯著,這是因為在BIT和SRAD中存在大量的可融合發(fā)散區(qū)域,PCFM能夠有效合并這些可融合發(fā)散區(qū)域,大幅提升性能。LUD的散度取決于塊的大小,當(dāng)LUD塊的大小為16、32和64時會產(chǎn)生線程束分化,此時PCFM的優(yōu)化效果明顯優(yōu)于分支融合+尾合并。
表1 不同算法的加速比性能對比
融合閾值決定了可融合發(fā)散區(qū)域合并的力度。表2為在實際的基準(zhǔn)測試中融合閾值對性能的影響,7個測試用例選取的塊大小均為最佳性能下的塊大小??梢钥闯?,并不是融合閾值越大性能越好,隨著融合閾值的增大,會損失一部分的合并機(jī)會,但也不能將它完全置為0,因為這會導(dǎo)致不考慮融合盈利而將所有的可融合發(fā)散區(qū)域都進(jìn)行合并。
通過測試發(fā)現(xiàn)PCFM對性能的提升顯著,本節(jié)使用性能分析工具分析性能提升的原因。
表3展示了7個測試用例的歸一化共享內(nèi)存指令數(shù)的情況。BIT和PCM的可融合發(fā)散區(qū)域中包含了大量的共享內(nèi)存指令,PCFM合并這些共享內(nèi)存指令,使性能得到了顯著的提升。DCT沒有使用共享內(nèi)存,所以共享內(nèi)存的指令個數(shù)為0。共享內(nèi)存指令比大部分的ALU指令的延遲更高,因此合并共享內(nèi)存指令對性能的提升更為明顯。
表2 不同融合閾值下的加速比
表3 不同算法的歸一化共享內(nèi)存指令數(shù)
本文面向DCU平臺分析了大量核函數(shù)中存在的復(fù)雜控制流,針對非一致控制流提出了優(yōu)化方法PCFM,并在編譯器中實現(xiàn)了該方法。PCFM通過檢測、評估和合并不同路徑中的同構(gòu)區(qū)域提升性能,與傳統(tǒng)減少線程束分化的優(yōu)化方法分支融合+尾合并相比,PCFM的適用范圍更廣,減少線程束分化的效果更好。
目前PCFM的優(yōu)化方法只針對同構(gòu)區(qū)域進(jìn)行合并,在分析核函數(shù)中的復(fù)雜控制流時,很多不具備同構(gòu)性質(zhì)的區(qū)域也存在合并的可能性,因此在未來的工作中準(zhǔn)備從非同構(gòu)區(qū)域入手,擴(kuò)大方法的適用范圍。
[1] 胡偉方. 面向DCU的多面體編譯優(yōu)化技術(shù)研究[D]. 鄭州:鄭州大學(xué), 2021: 11-19.(HU W F. Research on DCU-oriented polyhedron compiler optimization technology[D]. Zhengzhou: Zhengzhou University, 2021:11-19.)
[2] HOLZINGER P, REICHENBACH M, FEY D. A new generic HLS approach for heterogeneous computing: on the feasibility of high-level synthesis in HSA-compatible systems[C]// Proceedings of the 18th International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation. New York: ACM, 2018: 18-27.
[3] CHEN W K, LI B G, GUPTA R. Code compaction of matching single-entry multiple-exit regions[C]// Proceedings of the 2003 International Static Analysis Symposium, LNCS 2694. Berlin: Springer, 2003: 401-417.
[4] COUTINHO B, SAMPAIO D, PEREIRA F M Q, et al. Divergence analysis and optimizations[C]// Proceedings of the 2011 International Conference on Parallel Architectures and Compilation Techniques. Piscataway: IEEE, 2011: 320-329.
[5] LATTNER C, ADVE V. LLVM: a compilation framework for lifelong program analysis & transformation[C]// Proceedings of the 2004 International Symposium on Code Generation and Optimization. Piscataway: IEEE, 2004: 75-86.
[6] HAN T D, ABDELRAHMAN T S. Reducing branch divergence in GPU programs[C]// Proceedings of the 4th Workshop on General Purpose Processing on Graphics Processing Units. New York: ACM, 2011: No.3.
[7] KARRENBERG R, HACK S. Improving performance of OpenCL on CPUs[C]// Proceedings of the 2012 International Conference on Compiler Construction, LNCS 7210. Berlin: Springer, 2012: 1-20.
[8] ROSEMANN J, MOLL S, HACK S. An abstract interpretation for SPMD divergence on reducible control flow graphs[J]. Proceedings of the ACM on Programming Languages and Systems, 2021, 5(POPL): No.31.
[9] ROCHA R C O, PETOUMENOS P, WANG Z, et al. Function merging by sequence alignment[C]// Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization. Piscataway: IEEE, 2019: 149-163.
[10] SMITH T F, WATERMAN M S. Identification of common molecular subsequences[J]. Journal of Molecular Biology, 1981, 147(1): 195-197.
[11] ROCHA R C O, PETOUMENOS P, WANG Z, et al. Effective function merging in the SSA form[C]// Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. New York: ACM, 2020: 854-868.
[12] CYTRON R, FERRANTE J, ROSEN B K, et al. Efficiently computing static single assignment form and the control dependence graph[J]. ACM Transactions on Programming Languages and Systems, 1991, 13(4):451-490.
[13] CHE S, BOYER M, MENG J, et al. Rodinia: a benchmark suite for heterogeneous computing[C]// Proceedings of the 2009 IEEE International Symposium on Workload Characterization. Piscataway: IEEE, 2009: 44-54.
[14] BATCHER K E. Sorting networks and their applications[C]// Proceedings of the 1968 Spring Joint Computer Conference. New York: ACM, 1968: 307-314.
[15] BAKHODA A, YUAN G L, FUNG W W L, et al. Analyzing CUDA workloads using a detailed GPU simulator[C]// Proceedings of the 2009 IEEE International Symposium on Performance Analysis of Systems and Software. Piscataway: IEEE, 2009: 163-174.
[16] HERRUZO E, RUíZ G, BENAVIDES J I, et al. A new parallel sorting algorithm based on odd-even mergesort[C]// Proceedings of the 15th EUROMICRO International Conference on Parallel, Distributed and Network-Based Processing. Piscataway: IEEE, 2007: 18-22.
Compilation optimizations for inconsistent control flow on deep computer unit
YANG Xiaoyi1,2, ZHAO Rongcai1,2, WANG Hongsheng2*, HAN Lin1,2, XU Kunkun1,2
(1,,450001,;2,450001,)
The domestic DCU (Deep Computer Unit) adopts the parallel execution model of Single Instruction Multiple Thread (SIMT). When the programs are executed, inconsistent control flow is generated in the kernel function, which causes the threads in the warp be executed serially. And that is warp divergence. Aiming at the problem that the performance of the kernel function is severely restricted by warp divergence, a compilation optimization method to reduce the warp divergence time — Partial-Control-Flow-Merging (PCFM) was proposed. Firstly, divergence analysis was performed to find the fusible divergent regions that are isomorphic and contained a large number of same instructions and similar instructions. Then, the fusion profit of the fusible divergent regions was evaluated by counting the percentage of instruction cycles saved after merging. Finally, the alignment sequence was searched, the profitable fusible divergent regions were merged. Some test cases from Graphics Processing Unit (GPU) benchmark suite Rodinia and the classic sorting algorithm were selected to test PCFM on DCU. Experimental results show that PCFM can achieve an average speedup ratio of 1.146 for the test cases. And the speedup of PCFM is increased by 5.72% compared to that of the branch fusion + tail merging method. It can be seen that the proposed method has a better effect on reducing warp divergence.
Deep Computer Unit (DCU); Single Instruction Multiple Thread (SIMT); warp divergence; complex control flow; compilation optimization
This work is partially supported by Major Science and Technology Special Project of Henan Province (221100210600).
YANG Xiaoyi, born in 1997, M. S. candidate. Her research interests include advanced compilation technology.
ZHAO Rongcai, born in 1957, Ph. D., professor. His research interests include advanced compilation technology, high-performance computing.
WANG Hongsheng,born in 1994, M. S. His research interests include advanced compilation technology, high-performance computing.
HAN Lin, born in 1978, Ph. D., associate professor. His research interests include advanced compilation technology, high-performance computing.
XU Kunkun, born in 1991, M. S. candidate. His research interests include advanced compilation technology.
1001-9081(2023)10-3170-08
10.11772/j.issn.1001-9081.2022091338
2022?09?12;
2022?12?21;
河南省重大科技專項(221100210600)。
楊小藝(1997—),女,河南南陽人,碩士研究生,主要研究方向:先進(jìn)編譯技術(shù); 趙榮彩(1957—),男,河南洛陽人,教授,博士,CCF會員,主要研究方向:先進(jìn)編譯技術(shù)、高性能計算; 王洪生(1994—),山東濱州人,碩士,主要研究方向:先進(jìn)編譯技術(shù)、高性能計算; 韓林(1978—),男,山東臨沂人,副教授,博士,CCF會員,主要研究方向:先進(jìn)編譯技術(shù)、高性能計算; 徐坤坤(1991—),男,河南信陽人,碩士研究生,主要研究方向:先進(jìn)編譯技術(shù)。
TP314
A
2022?12?25。