HPVM 2.0, compiler rau CPU, GPU, FPGA thiab kho vajtse accelerators luam tawm

LLVM qhov project tshaj tawm qhov kev tso tawm ntawm HPVM 2.0 (Heterogeneous Parallel Virtual Machine), ib qho kev sau ua ke rau kev ua kom yooj yim rau cov txheej txheem sib txawv thiab muab cov txheej txheem tsim cov cuab yeej rau CPUs, GPUs, FPGAs, thiab cov khoom siv tshwj xeeb tshwj xeeb accelerators. Txoj haujlwm code raug faib raws li Apache 2.0 daim ntawv tso cai.

Programming rau heterogeneous parallel systems yog nyuaj los ntawm lub xub ntiag ntawm lub Cheebtsam nyob rau hauv tib lub system uas siv cov qauv sib txawv rau kev ua tiav parallelism (CPU cores, vector qhia, GPU, thiab lwm yam), cov kev qhia sib txawv thiab ntau lub cim xeeb hierarchies. Txhua qhov system siv nws tus kheej ua ke ntawm cov khoom no. Lub tswv yim tseem ceeb ntawm HPVM qhov project yog siv ib qho kev sib koom ua ke sawv cev ntawm cov kev sib txuas ua ke thaum muab tso ua ke, uas tuaj yeem siv rau ntau hom kev kho vajtse uas txhawb nqa kev sib piv, suav nrog GPUs, cov lus qhia vector, ntau cov tub ntxhais processors, FPGAs thiab ntau yam tshwj xeeb accelerator chips.

Tsis zoo li lwm cov kab ke, HPVM tau sim ua ke peb lub peev xwm rau kev teeb tsa cov kev suav sib txawv - cov lus programming thiab kho vajtse-yooj yim nruab nrab sawv cev (IR), cov lus qhia virtual teeb tsa (V-ISA) thiab sijhawm teem sijhawm:

  • HPVM tus sawv cev nruab nrab txuas ntxiv LLVM nruab nrab sawv cev ntawm cov lus qhia los ntawm kev siv cov ntaub ntawv hierarchical flow graph kom ntes cov kev sib luag ntawm cov haujlwm, cov ntaub ntawv, thiab cov kav dej. HPVM tus sawv cev nruab nrab kuj suav nrog cov lus qhia vector thiab kev nco sib koom. Lub hom phiaj tseem ceeb ntawm kev siv ib qho kev sawv cev nruab nrab yog kev tsim cov cai tsim tau zoo thiab kev ua kom zoo rau cov txheej txheem heterogeneous.
  • Virtual Instruction Set Architecture (V-ISA) abstracts low-level hardware features and unifies various form of parallelism and memory architectures using only a basic parallelism model-cov ntaub ntawv flow graph. V-ISA tso cai rau koj kom ua tiav kev txav mus los ntawm ntau hom khoom siv rau kev sib piv thiab ua kom tsis txhob poob kev ua haujlwm thaum siv cov khoom sib txawv ntawm cov txheej txheem sib txawv. Virtual ISA tseem tuaj yeem siv los xa cov txheej txheem kev ua haujlwm thoob ntiaj teb uas tuaj yeem khiav siv CPUs, GPUs, FPGAs, thiab ntau yam accelerators.
  • Cov kev cai tswjfwm hloov tau yooj yim rau cov txheej txheem kev suav yog siv rau ntawm lub sijhawm ua haujlwm thiab raug siv ob qho tib si raws li cov ntaub ntawv hais txog qhov program (graph structure) thiab los ntawm kev muab tso ua ke ntawm ib tus neeg cov kev pab cuam nodes rau kev ua tiav ntawm ib qho ntawm lub hom phiaj kev siv computer muaj nyob rau hauv lub system.

Cov code generators tsim los ntawm qhov project muaj peev xwm los txhais cov ntawv thov nodes txhais siv virtual ISA rau kev ua tiav siv NVIDIA GPUs (cuDNN thiab OpenCL), Intel AVX vector cov lus qhia, FPGAs thiab multi-core x86 CPUs. Nws tau raug sau tseg tias qhov ua tau zoo ntawm HPVM cov neeg txhais lus yog piv rau tes sau OpenCL code rau GPUs thiab vector suav cov khoom siv.

Kev tsim kho tseem ceeb ntawm HPVM 2.0:

  • Ib hom lus Hetero-C ++ frontend tau raug npaj, uas ua kom yooj yim rau kev sib piv ntawm daim ntawv thov code hauv C / C ++ rau muab tso ua ke hauv HPVM. Hetero-C ++ txhais cov kev txuas ntxiv rau cov ntaub ntawv-theem kev sib luag thiab cov haujlwm hierarchical uas qhia txog HPVM xov graphs.
  • Ib qho FPGA backend tau ntxiv los muab kev txhawb nqa rau kev ua tiav ntawm Intel FPGAs. Txhawm rau npaj kev ua tiav, Intel FPGA SDK rau OpenCL yog siv.
  • Lub DSE (Design Space Exploration) lub moj khaum tau ntxiv, uas suav nrog kev ua kom zoo dua qub thiab cov txheej txheem rau kev txheeb xyuas cov kev tsis sib haum xeeb rau kev hloov kho cov ntawv thov rau lub platform kho vajtse. Lub moj khaum muaj cov qauv npaj ua haujlwm rau FPGAs los ntawm Intel thiab ua rau nws tuaj yeem txuas koj tus kheej cov txheej txheem rau kev ua kom zoo rau txhua yam khoom siv txhawb nqa los ntawm HPVM. Kev ua kom zoo tuaj yeem siv tau ntawm HPVM thiab LLVM dataflow graph theem.
  • LLVM cov khoom tau hloov kho rau version 13.0.
  • Cov cai tau raug kho dua tshiab los ua kom yooj yim rau kev taug qab cov cai hauv paus, tsev qiv ntawv, thiab cov khoom siv hluav taws xob.
  • Cov kev sim ntsuas tau raug txhim kho, cov kev sim tshiab tau ntxiv rau ntau yam HPVM cov khoom.

Tau qhov twg los: opennet.ru

Ntxiv ib saib