RISC-V chivakwa chakawana mukurumbira wakawanda Mumakore achangopfuura, izvi zvekutenda kune yakavhurika sosi (ISA) dhizaini uye izvi, zvichiwedzera kuti yave imwe yeakakosha processor zvivakwa nekuda kwekushanduka kwayo uye modularity.
Kutenda izvo Mapurojekiti akasiyana akavakirwa paRISC-V akatangwa uye imwe yacho iVortex yatiri kuzotaura nezvayo nhasi pano pablog.
Chii chinonzi Vortex chirongwa?
Vortex es chirongwa chinogadzira GPGPU, zvichibva pane iyo RISC-V yekuvakisa. Iyo purojekiti yakagadzirirwa kuita parallel komputa uchishandisa iyo OpenCL API uye iyo SIMT execution modhi.
Iyo yakakosha yeVortex GPGPU ndeye generic RISC-V, pave nekuvandudzwa kwakaitwa nemimwe mirairo yekuwedzera inodiwa kutsigira GPU kushanda uye tambo kutonga. Panguva imwecheteyo, shanduko kune RISC-V yekuraira set architecture inochengetwa kune shoma uye iripo vector mirairo inoshandiswa chero pazvinogoneka. Maitiro akafanana anoshandiswa muRV64X purojekiti, iyo zvakare inogadzira yakavhurika GPU yakavakirwa paRISC-V matekinoroji.
Chimwe chiitiko Vortex ndiyo iyo GPGPU ine mirairo yepamusoro, pakati pazvo ndezvi: »tex» kukurumidza kugadzirwa kwemavara, «vx_rast» kudzora rasterization, «vx_rop» kubata zvimedu, kudzika uye pachena, «vx_imadd» kuita mabasa ekuwanza uye kuwedzera, «vx_wspawn» , "vx_tmc" uye "vx_bar" kuti uvhure mipendero yemirairo uye mafungu epamberi (seti yeshinda dzakaitwa dzakafanana neinjini yeSIMD), "vx_split" uye "vx_join".
Kubva cVortex maficha makuru anomira kunze zvinotevera zvinowanikwa:
- Tsigiro ye32-bit uye 64-bit RISC-V yekuraira seti yezvivakwa: RV32IMF uye RV64IMAFD.
- Configurability: Configurable nhamba yemacores, task blocks (warps) uye shinda.
- Kugadzirisa unit: Configurable nhamba yeALU, FPU, LSU uye SFU pamusimboti.
- Outlet Width: Inogadziriswa pombi yekubuda kwehupamhi.
- Memory: Optional yakagovaniswa ndangariro uye L1, L2 uye L3 cache.
- OpenCL 1.2 tsanangudzo yekutsigira.
- FPGA-yakavakirwa kuita: Kugona kwekuita paAltera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 uye Xilinx Versal VCK5000 FPGAs.
- SPIR-V rutsigiro: Inoitwa kuburikidza neshanduro kuOpenCL.
Zvishandiso Zvekuvandudza: Chishandiso chinosanganisira akasiyana ePoCL (OpenCL compiler uye runtime), LLVM/Clang, GCC, uye Binutils akachinjirwa kushanda neVortex. - Chip Simulation: Inotsigirwa uchishandisa Verilator (Verilog simulator), RTLSIM (RTL simulation), uye SimX (software simulation).
Skybox GPU
Kunze kwaizvozvo, yemifananidzo yakavakirwa paVortex tekinoroji, Skybox GPU iri kuvandudzwa vhura iyo inotsigira Vulkan graphics API. Zvinonzi Skybox prototype inogadzirwa pahwaro hweAltera Stratix 10 FPGA uye inosanganisira 32 cores (512 tambo) pafrequency ye230 MHz Zvinofanira kucherechedzwa kuti iyi ndiyo yekutanga yakavhurika GPU ine software uye hardware kuita zvinoenderana pamwe Vulkan
Zvakakodzera kutaura izvozvo Parizvino chirongwa cheVortex chiri mushanduro yayo 2.1, iyo ichangobva kuburitswa uye shanduko dzakakosha dzakaitwa senge: ndangariro yekubatanidza tsigiro (iyo yave kutsigirwa), CSR yekuraira gadziriso yakagadziridzwa, kuwandisa kwave kugadziridzwa, nyowani yekumisikidza script, pakati pezvimwe zvinhu:
- Kernel API yakawedzerwapawn_taskgroups kumhanyisa kernels dzinoshandisa ndangariro dzenzvimbo nezvipingaidzo
- Nyowani yekumhanyisa nguva yekuwedzera inotamiswa kernel nharo nemabhinari.
- New runtime memory API yekuwedzera: vx_mem_reserve, vx_mem_access, vx_mem_kero
- new runtime API vx_check_occupancy
- Yakawedzera GPU mutyairi sarudzo yekuyedza OpenCL bvunzo pane yemuno GPU (semuenzaniso. blackbox.sh -driver=gpu -app=sgemm)
- Yakawedzera OpenCL bvunzo dzinoshandiswa nendangariro yemuno (psum, sgemm2, sgemm3)
- Yakawedzera tsika vortex libc uye librt maraibhurari ane control divergence chiridzwa.
Kana iwe uchifarira kudzidza zvakawanda nezvazvo, iwe unofanirwa kuziva kuti schematics, tsananguro dze Hardware blocks muVerilog mutauro, simulator, vatyairi uye anoperekedza dhizaini zvinyorwa zvakagoverwa pasi peiyo Apache 2.0 rezinesi. Iwe unogona kutarisa zvinyorwa mu inotevera chinongedzo.