Anda di halaman 1dari 7

Vortex: OpenCL Kompatibel RISC-V GPGPU

tarif Elsabbagh Blaise Tine Priyadarshini Roshan Ethan Lyons Euna Kim
Georgia Tech Georgia Tech Georgia Tech Georgia Tech Georgia Tech
fsabbagh@gatech.edu btine3@gatech.edu priya77darshini@gatech.edu elyons8@gatech.edu ekim79@gatech.edu

Da Eun Shim Lingjun Zhu Sung Kyu Lim Hyesoon Kim


Georgia Tech Georgia Tech Georgia Tech Georgia Tech
daeun@gatech.edu lingjun@gatech.edu limsk@ece.gatech.edu hyesoon@cc.gatech.edu

Abstrak - pemrosesan sinyal digital (DSP) untuk perangkat scalable Internet-of-hal (IOT).
Tantangan saat ini di skala teknologi mendorong industri semikonduktor menuju Selain itu, prosesor vektor [22] [15] [3] dan prosesor terintegrasi dengan
spesialisasi hardware, creat- ing proliferasi sistem-on-chip heterogen, memberikan
akselerator vektor [16] [10] telah dirancang dan dibuat berdasarkan RISC-V.
perintah kinerja besarnya dan kekuatan bene ts fi dibandingkan dengan arsitektur tujuan
Meskipun keuntungan dari karya-karya sebelumnya, tidak cukup perhatian
umum tradisional. Transisi ini semakin signifikan dorongan dengan munculnya RISC-V
dengan ISA modular dan extensible yang unik, yang memungkinkan berbagai macam telah dikhususkan untuk membangun tujuan umum GPU (GPGPU) sistem
desain prosesor biaya rendah untuk berbagai aplikasi sasaran. Selain itu, OpenCL saat open-source berdasarkan RISC-V.
arXiv: 2002.12151v1 [cs.DC] 27 Feb 2020

ini kerangka pemrograman yang paling banyak diadopsi untuk platform heterogen yang
tersedia di CPU utama, GPU, serta FPGA dan DSP kustom.
Meskipun beberapa karya terbaru telah diusulkan untuk perhitungan massal
paralel pada FPGA menggunakan RISC-
V, (GRVI Phalanx) [11], (Simty) [6], tidak satupun dari mereka telah menerapkan
Dalam karya ini, kami hadir Vortex, GPU RISC-V General-Purpose yang mendukung penuh tumpukan dengan memperpanjang RISC-V ISA, syn-thesizing
OpenCL. Vortex alat yang SIMT archi- tecture dengan ekstensi ISA minimal untuk mikroarsitektur, dan menerapkan software stack untuk menjalankan program
RISC-V yang memungkinkan pelaksanaan program OpenCL. Kami juga diperpanjang
OpenCL. Kami percaya bahwa implementasi seperti ini sebenarnya diperlukan
OpenCL runtime kerangka untuk menggunakan ISA baru. Kami mengevaluasi desain ini
untuk mencapai tingkat kegunaan dan customizability di platform massal paralel.
menggunakan teknologi 15nm. Kami juga menunjukkan kinerja dan energi nomor
menjalankan mereka dengan subset dari benchmark dari Rodinia benchmark suite.
Dalam tulisan ini, kami mengusulkan sebuah ISA ekstensi RISC-V untuk program GPGPU

dan mikroarsitektur. Kami juga memperpanjang tumpukan perangkat lunak untuk mendukung
Indeks Persyaratan -GPGPU, OpenCL, prosesor Vector
OpenCL.

Makalah ini membuat kontribusi utama sebagai berikut:


I. saya P ENDAHULUAN
• Kami mengusulkan arsitektur General Purpose GPU berbasis SIMT sangat con
Munculnya data arsitektur paralel dan grafis tujuan umum unit pengolahan
fi gurable menargetkan RISC-V ISA dan disintesis desain menggunakan
(GPGPUs) telah memungkinkan peluang baru untuk mengatasi keterbatasan
perpustakaan Synopsys dengan desain RTL kami.
daya dan bility scala- prosesor multi-core, yang memungkinkan cara-cara baru
untuk mengeksploitasi berlimpah Data paralelisme hadir di negara berkembang
• Kami menunjukkan bahwa seperangkat minimal lima petunjuk di atas RV32IM
paralel besar-data yang aplikasi seperti mesin belajar dan grafik analisis.
(RISC-V 32 bit integer dan ekstensi multiply) memungkinkan eksekusi SIMT.
GPGPUs khususnya, dengan Single mereka Instruksi Multiple-Thread (SIMT)
Model eksekusi, berat data paralel memanfaatkan multi-threading untuk
• Kami menjelaskan perubahan yang diperlukan dalam tumpukan perangkat lunak
memaksimalkan throughput rel- biaya energi atively rendah, memimpin
yang memungkinkan pelaksanaan program OpenCL pada Vortex. Kami menunjukkan
perlombaan saat ini untuk energi efisiensi (Green500 [12]) dan aplikasi
portabilitas dengan menjalankan bagian dari tolok ukur Rodinia [5].
mendukung dengan akselerator-centric model pemrograman paralel mereka
(CUDA [19] dan OpenCL [17]).

II. B ACKGROUND

A. Open-Source OpenCL Implementasi


Munculnya RISC-V [2], [20], [21], open-source dan instruksi bebas arsitektur
set (ISA), menyediakan tingkat baru kebebasan dalam merancang arsitektur PoCL [13] alat yang fleksibel kompilasi backend berdasarkan LLVM, yang
hardware dengan biaya lebih rendah, meningkatkan eko-sistem yang kaya memungkinkan untuk mendukung lebih luas target perangkat termasuk prosesor
perangkat lunak open-source dan alat-alat. Dengan RISC-V, arsitek komputer tujuan umum (misalnya x86, ARM, Mips), General Purpose GPU (misalnya
telah merancang beberapa prosesor yang inovatif dan core seperti BOOM v1 Nvidia), dan prosesor berbasis TCE [ 14] dan adat akselerator. Kebiasaan
dan BOOM v2 [4] out-of-order core, serta sistem-on-chip (SoC) platform untuk accelera- dukungan tor memberikan e fi sien solusi untuk memungkinkan aplikasi
berbagai macam aplikasi. Misalnya, Gautschi et al. [9] telah menambah OpenCL untuk menggunakan perangkat hardware dengan khusus fi fungsi xed-
RISC-V untuk perangkat keras (misalnya SPMV, GEMM). PoCL terdiri
1 vx_intrinsic.s
2 vx_split:
3 . kata 0x0005206b # Perpecahan a0
4 membasahi
5 vx_join:
6 . kata 0x0000306b # Ikuti
7 membasahi
89 kernel.cl

10 # mendefinisikan __if ( cond) split (cond); \


11 jika( cond)
12 13 # mendefinisikan __endif Ikuti();

14 kosong opencl_kernel () {
15 int id = vx_getTid ();
16 __jika( id <4) {
Gambar 1:. Vortex Sistem Ikhtisar 17 // Jalur A
18 } lain {
19 // Jalur B
20 } __ berakhir jika
21}

Gambar 3:. Angka ini menunjukkan kontrol divergen jika berakhir jika

makro Definisi de dan bagaimana mereka dapat digunakan untuk memungkinkan kontrol

perbedaan dalam kernel OpenCL. Saat ini, proses ini dilakukan secara manual untuk setiap

kernel.

Gambar 2:. Vortex Runtime Library


antarmuka ISA baru, 2) Sebuah dukungan perpustakaan yang menerapkan
NewLib rintisan fungsi [7], 3) runtime API asli untuk meluncurkan PoCL kernel.

dari dua komponen utama: Sebuah mesin kompilasi back-end, dan front-end
1) intrinsik Perpustakaan: Untuk mengaktifkan Vortex runtime kernel untuk
OpenCL runtime API.
memanfaatkan instruksi baru tanpa memodifikasi compiler yang ada, kami
POCl runtime alat antarmuka perangkat-independen umum di mana
menerapkan lapisan intrinsik yang mengimplementasikan ISA baru. Gambar 2
pelaksanaan target masing-masing perangkat colokan ke PoCL untuk
menunjukkan fungsi dan ISA didukung oleh perpustakaan intrinsik. Kami
mengkhususkan operasi mereka. Pada saat runtime, PoCL memanggil
memanfaatkan RISC-V ABI yang menjamin fungsi argumen yang melewati
compiler back-end dengan pro vided OpenCL kernel source. PoCL mendukung
register gument ar dan kembali nilai-nilai mulai melewati a0
target-spesifik model eksekusi termasuk SIMT, MIMD, SIMD, dan VLIW. Pada
platform mendukung MIMD dan SIMD model eksekusi seperti CPU, upaya
daftar. Dengan demikian, fungsi-fungsi intrinsik hanya memiliki dua instruksi
PoCL compiler untuk berkemas sebanyak OpenCL kerja-item untuk instruksi
perakitan: 1) dikodekan 32-bit hex representasi dari instruksi yang menggunakan
vektor yang sama, maka runtime PoCL akan mendistribusikan karya-item yang
register argumen sebagai register sumber, dan 2) instruksi pengembalian yang
tersisa di antara benang hardware aktif pada perangkat dengan disediakan
kembali kembali ke C Program ++. Contoh dari fungsi-fungsi intrinsik diilustrasikan
chronization syn. Pada platform mendukung pelaksanaan model SIMT seperti
pada Gambar 3. Selain itu, untuk menangani kontrol divergence, yang sering
GPU, delegasi PoCL compiler distribusi pekerjaan-item untuk perangkat keras
terjadi di kernel OpenCL, kami menerapkan
untuk menyebarkan eksekusi di antara benang perangkat keras,
jika dan endif
mengandalkan perangkat untuk juga menangani sinkronisasi diperlukan. Pada
macro ditunjukkan dalam Gambar 3 untuk menangani penyisipan fungsi-fungsi
platform mendukung VLIW model eksekusi seperti akselerator berbasis TCE,
intrinsik dengan sedikit perubahan pada kode. Perubahan ini sedang dilakukan
upaya PoCL compiler untuk “membuka gulungan” daerah paralel dalam kode
secara manual untuk kernel OpenCL. Pendekatan ini mencapai fungsi yang
kernel sehingga operasi dari beberapa independen pekerjaan-barang yang
diperlukan tanpa membatasi platform atau membutuhkan setiap
bisa statis dijadwalkan untuk unit fungsi beberapa dari target alat.
spesifikasi-modi ke compiler RISC-V.

2) Newlib Perpustakaan Rintisan: software Vortex tumpukan menggunakan NewLib [7]


perpustakaan untuk mengaktifkan program untuk menggunakan C / C ++ standar
perpustakaan tanpa perlu mendukung sistem operasi. NewLib mendefinisikan satu set

AKU AKU AKU. T DIA HAI PENA CL S OFTWARE S MEMAKUKAN minimal fungsi rintisan bahwa aplikasi client perlu untuk mengimplementasikan untuk
menangani system calls yang dibutuhkan seperti fi le I / O, alokasi, waktu, proses, dll ..
A. Vortex asli Runtime

Perangkat lunak Vortex tumpukan alat runtime perpustakaan asli untuk 3) API Vortex asli: The Vortex asli API mengimplementasikan beberapa rutinitas
mengembangkan aplikasi yang akan berjalan pada Vortex dan mengambil tujuan utilitas umum untuk aplikasi untuk digunakan. Salah satu rutinitas tersebut
keuntungan dari ekstensi RISC-V ISA baru. Gambar 2 mengilustrasikan lapisan adalah bibit POCl () yang memungkinkan program untuk eksekusi kernel jadwal PoCL
Vortex runtime, yang terdiri dari tiga komponen utama: 1) tingkat rendah intrinsik di Vortex. bibit POCl ()
perpustakaan mengekspos bertanggung jawab untuk kelompok kerja pemetaan yang diminta oleh PoCL ke
yang mengambil, decoding, dan mengeluarkan instruksi dibagi dalam warp yang
sama yang mengurangi siklus eksekusi.
Namun, dalam beberapa kasus, benang dalam warp yang sama akan tidak setuju
pada arah cabang. Dalam kasus tersebut, hardware harus menyediakan masker thread
untuk petunjuk predikat untuk setiap thread, dan tumpukan IPDOM, untuk memastikan
semua thread mengeksekusi dengan benar, yang dijelaskan dalam Bagian IV-C.

Gambar 4:. SIMT Kernel doa modi fi kasi untuk Vortex di PoCL
B. Warp Scheduler

Lungsin scheduler adalah dalam mengambil tahap yang memutuskan apa yang harus
mengambil dari I-cache yang ditunjukkan pada Gambar 5. Ini memiliki dua komponen: 1)

hardware: 1) Ia menggunakan lapisan intrinsik untuk fi nd keluar sumber daya avail- Satu set masker warp untuk memilih warp untuk jadwal berikutnya, dan 2) tabel warp

mampu hardware, 2) Menggunakan diminta kerja dimensi dan nomor kelompok yang termasuk informasi pribadi untuk setiap warp.

untuk membagi pekerjaan sama antara sumber daya perangkat keras, 3) Untuk
setiap dimensi OpenCL, itu memberikan sebuah berbagai ID untuk setiap warp Ada 4 topeng benang bahwa penggunaan scheduler: 1) sebuah warps aktif
tersedia dalam struktur global, 4) Ia menggunakan lapisan intrinsik untuk bertelur masker, satu bit yang menunjukkan apakah warp sebuah aktif atau tidak, 2) warp
yang warps dan benang mengaktifkan, dan akhirnya 5) setiap warp akan loop masker terhenti, yang menunjukkan yang warps tidak harus dijadwalkan
melalui ID ditugaskan, mengeksekusi kernel setiap kali dengan OpenCL baru id sementara (misalnya, menunggu permintaan memori), 3) warps penghalang
global. Gambar 4 menunjukkan contoh. Dalam kode OpenCL asli, inti disebut sekali terhenti topeng, yang menunjukkan warps yang telah terhenti karena instruksi
dengan / ukuran lokal global argumen. PoCL membungkus kernel dengan tiga loop penghalang, dan 4) warps terlihat masker untuk mendukung hirarkis penjadwalan
dan berurutan panggilan dengan logika yang bertobat x, y, z untuk id global. Untuk kebijakan [18].
versi Vortex, warps dan benang melahirkan, maka setiap thread diberikan sebuah
kerja-kelompok yang berbeda untuk mengeksekusi kernel. PoCL menyediakan fitur Setiap siklus, scheduler yang ditunjuk oleh salah satu warp dari topeng warp
untuk memetakan benar wid, terlihat dan membatalkan yang warp. Ketika warp topeng terlihat adalah nol, topeng
aktif kembali diisi oleh pengecekan yang warps sedang aktif dan tidak terhenti.

yang merupakan bagian dari pelaksanaan dasar PoCL untuk mendukung Sebuah contoh dari scheduler warp ditunjukkan pada Gambar 6 (a). angka
berbagai hardware seperti arsitektur vektor. ini menunjukkan eksekusi normal; Yang pertama siklus warp nol mengeksekusi
sebuah instruksi, maka pada siklus kedua warp nol valid dalam warp topeng
B. PoCL Runtime terlihat, dan warp satu dijadwalkan. Pada siklus ketiga, karena tidak ada lagi

Kami modi fi ed runtime PoCL, menambahkan target perangkat baru untuk antarmuka warps dijadwalkan, scheduler menggunakan warps aktif untuk re fi ll topeng

perangkat umum untuk dukungan Vortex. Target perangkat baru pada dasarnya adalah terlihat, dan jadwal warp nol untuk eksekusi.

sebuah varian dari PoCL sasaran CPU dasar dengan dukungan untuk pthreads dan
dependensi OS lainnya dihapus untuk menargetkan antarmuka NewLib. Kami juga modi fi ed Gambar 6 (b) menunjukkan bagaimana warp scheduler menangani warp

logika tunggal berulir untuk melaksanakan pekerjaan-item untuk menggunakan Vortex ini terhenti. Pada siklus pertama fi jadwal scheduler warp nol. Pada siklus kedua,
jadwal scheduler warp satu. Pada siklus yang sama, karena tahap decode

spawn POCl API runtime. diidentifikasi bahwa warp instruksi nol ini membutuhkan perubahan dari negara,
warung warp nol. Pada siklus ketiga, karena warp nol terhenti, scheduler hanya
C. Barrier Dukungan menetapkan warp satu untuk warp topeng terlihat dan jadwal warp satu lagi. Ketika
warp nol update masker benang nya, sedikit di masker terhenti akan diatur ke 0
Sinkronisasi dalam kerja kelompok di OpenCL yang didukung oleh
untuk memungkinkan penjadwalan.
hambatan. back-end compiler PoCL ini membagi kontrol-aliran grafik (CFG) dari
kernel sekitar penghalang dan membagi kernel menjadi dua bagian yang akan
Gambar 6 (c) menunjukkan contoh pemijahan warps. Ketika warp nol
dijalankan oleh semua pekerjaan-kelompok lokal berurutan.
mengeksekusi sebuah wspawn instruksi (Tabel I), yang mengaktifkan warps dan
memanipulasi yang warps aktif masker dengan menetapkan warps dua dan tiga

IV. V ORTEX P ARALLEL H ardware SEBUAH RCHITECTURE untuk aktif. Ketika waktu untuk re fi ll topeng terlihat, karena tidak lagi memiliki warps
setiap jadwal, itu termasuk warps dua dan tiga. Warps akan tinggal di Topeng Aktif
Primitif Hardware A. SIMT
sampai mereka menetapkan nilai benang topeng mereka ke nol, atau warp nol
SIMT, Single Instruction-Beberapa Threads, Model eksekusi mengambil Memanfaatkan wspawn untuk menonaktifkan warps ini.
keuntungan dari fakta bahwa dalam banyak beragam aplikasi paralel, kode yang
sama berulang kali dilaksanakan namun dengan data yang berbeda. Dengan
demikian, ia menyediakan konsep Warps [19], yang merupakan kelompok dari
C. Threads Masker dan IPDOM Stack

benang yang berbagi PC yang sama dan mengikuti jalan eksekusi yang sama dengan Untuk mendukung konsep benang dalam Bagian IV-A, benang masker
perbedaan minimal. Setiap thread di warp memiliki seperangkat pribadi register tujuan mendaftar dan stack IPDOM telah ditambahkan ke perangkat keras yang mirip
umum, dan lebar ALU cocok dengan jumlah benang. Namun, dengan arsitektur SIMT lainnya [8]. Benang topeng mendaftar bertindak seperti
predikat untuk setiap thread,
Gambar 5:. Vortex Microarchitecture.

terjadi: 1) Benang masker saat didorong ke stack IPDOM sebagai entri


jatuh-melalui, 2) Benang aktif yang mengevaluasi predikat sebagai palsu
didorong ke dalam stack dengan PC + 4 (yaitu, ukuran instruksi) dari instruksi
split, dan 3) benang masker saat diperbarui untuk mencerminkan benang aktif
yang mengevaluasi predikat untuk menjadi kenyataan.

Ketika join instruksi dijalankan, sebuah entri muncul dari tumpukan yang
menyebabkan salah satu dari dua skenario: 1) Jika entri tidak jatuh-melalui
entri, PC diatur ke PC entri dan topeng benang diperbarui untuk nilai topeng
masuk, yang memungkinkan benang mengevaluasi predikat sebagai palsu
untuk mengikuti jalur eksekusi mereka sendiri, dan 2) Jika entri adalah fall-
melalui entri, PC terus pelaksana untuk PC + 4 dan benang masker diperbarui
untuk topeng entri, yang merupakan kasus ketika kedua jalur dari perbedaan
kontrol telah dilaksanakan.

Hambatan D. Warp

hambatan Warp penting dalam pelaksanaan SIMT, karena pro vides sinkronisasi
antara warps. Hambatan disediakan dalam perangkat keras untuk mendukung
Gambar 6:. Fi ini angka menunjukkan Warp Scheduler di bawah skenario yang berbeda. sinkronisasi global antara kelompok-kerja. Setiap penghalang memiliki catatan
Dalam pelaksanaan mikroarsitektur yang sebenarnya, instruksi hanya dikenal siklus pribadi di meja penghalang, yang ditunjukkan pada Gambar 5, dengan informasi
berikutnya, namun ditampilkan dalam siklus yang sama di fi ini angka untuk berikut: 1) Apakah hambatan yang saat ini berlaku, 2) jumlah warps meninggalkan
kesederhanaan. kebutuhan untuk mengeksekusi instruksi penghalang dengan ID yang masuk untuk
penghalang akan dirilis, dan 3) masker dari warps yang saat ini terhenti oleh
penghalang itu. Namun, Gambar 5 hanya menunjukkan per hambatan inti. Ada juga
mengendalikan yang benang aktif. Jika bit di dalam topeng benang untuk spesifik meja lain pada inti con gurations fi multi yang memungkinkan untuk hambatan global
benang adalah nol, tidak ada spesifikasi-modi akan dilakukan untuk register yang antara semua core. MSB dari ID penghalang menunjukkan apakah instruksi
thread fi le dan tidak ada perubahan ke cache akan dibuat berdasarkan benang itu. menggunakan hambatan lokal atau hambatan global.

The IPDOM stack, diilustrasikan pada Gambar 5 digunakan untuk menangani kontrol

divergensi dan dikendalikan oleh perpecahan dan bergabung petunjuk. Instruksi ini Ketika instruksi penghalang dijalankan, mikroarsitektur yang memeriksa jumlah
memanfaatkan tumpukan IPDOM untuk memungkinkan perbedaan seperti yang ditunjukkan warps dieksekusi dengan ID penghalang yang sama. Jika jumlah warps tidak sama
pada Gambar 3. dengan satu, warp tersebut terhenti sampai nomor yang tercapai dan rilis masker
Ketika instruksi perpecahan dijalankan oleh warp, nilai predikat untuk setiap dimanipulasi untuk memasukkan warp itu. Setelah jumlah yang sama warps telah
thread dievaluasi. Jika hanya ada satu thread yang aktif, atau semua thread dilaksanakan, rilis mask digunakan untuk melepaskan semua warps terhenti oleh
menyepakati arah, perpecahan bertindak seperti instruksi nop dan tidak ID penghalang yang sesuai. Metode yang sama bekerja untuk kedua hambatan
mengubah keadaan lusi. Bila ada lebih dari satu thread aktif yang bertentangan lokal dan global; Namun, meja penghalang global yang memiliki rilis masker per
pada nilai predikat, tiga peristiwa mikroarsitektur masing-masing inti.
TABEL I: Usulan perpanjangan SIMT ISA. 25

jumlah ceel (unit 1000) Normalisasi Nilai


instruksi Deskripsi 20
1200

wspawn% numW,% PC Bibit W warps baru di PC 1000

tmc% numT Mengubah masker thread untuk benang mengaktifkan 15

(dinormalisasi untuk 1 x 1)
membagi% pred Kontrol aliran divergensi 800

Ikuti Kontrol aliran reconvergence 10


600

bar% Barid,% numW Hardware Warps Barrier


5
400

kekuasaan dinormalisasi daerah Jumlah Sel


0 0 200

2x2 2x4 2x8 2x16 2x32 4x32 8X32 16x32 32x32

jumlah warps x jumlah thread dinormalisasi

Gambar 8:. Disintesis hasil untuk kekuasaan, wilayah dan jumlah sel untuk nomor yang
berbeda dari warps dan benang

1.2

(B) distribusi kerapatan daya di seluruh


(A) GDS Tata Letak
Vortex 0.8 1

waktu eksekusi (dinormalisasi ke 2x2)


0,6

Gambar 7:. GDS layout untuk Vortex kami dengan 8 warp, 4 benang con fi 0,4

0,2

gurasi (4KB mendaftar fi le). Desain yang disintesis untuk 300Mhz dan 0

menghasilkan output daya total 46.8mW. 4KB 2 cara 4 tembolok bank-data,

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32
2x2

2x2

2x2

2x2

2x2

2x2

2x2
8X32

8X32

8X32

8X32

8X32

8X32

8X32
2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32
2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8
sgemm saxpy sfilter BFS gaussian vecadd nearn

8KB dengan 4 memori bank-bersama, 1kb 2 cara Cache, satu bank-I Cache.

Gambar 9:. Kinerja subset dari Rodinia benchmark suite (# dari warps x # dari
benang

VE PENILAIAN

Bagian ini akan mengevaluasi kedua model RTL Verilog untuk Vortex dan termasuk 1kb 2 cara cache instruksi, 4 Kb 2 way 4 bank data cache, dan 8kB 4
software stack. bank bersama modul memori.

A. Micro-arsitektur eksplorasi Desain ruang B. Benchmark

Dalam desain Vortex, kita dapat meningkatkan paralelisme data tingkat baik Semua tolok ukur yang digunakan untuk evaluasi diambil dari Rodinia [5],
populer GPGPU benchmark suite. 1
dengan meningkatkan jumlah thread atau dengan meningkatkan jumlah warps.
Peningkatan jumlah thread mirip dengan meningkatkan SIMD lebar dan
C. simX Simulator
melibatkan perubahan berikut ke perangkat keras: 1) meningkatkan lebar memori
GPR untuk membaca dan menulis, 2) meningkatkan jumlah ALUS untuk Karena tolok ukur yang digunakan dalam Rodinia Benchmark Suite memiliki besar

mencocokkan jumlah benang, 3) meningkatkan lebar mendaftar untuk setiap data-set yang mengambil Modelsim waktu lama untuk mensimulasikan, kami

tahap pipa setelah GPR membaca panggung, 4) meningkatkan logika arbitrase menggunakan simX, C ++ siklus-tingkat di-rumah simulator untuk Vortex dengan akurasi

diperlukan baik di cache dan memori bersama untuk mendeteksi Bank konflik dan siklus dalam waktu 6% dari model Verilog yang sebenarnya. Harap dicatat bahwa nomor

menangani cache misses, dan kekuasaan dan daerah disintesis dari RTL tersebut.

5) meningkatkan jumlah enteries IPDOM.


D. Evaluasi Kinerja
Sedangkan, meningkatkan jumlah warps tidak memerlukan meningkatkan
Gambar 9 menunjukkan waktu eksekusi dinormalisasi dari tanda bench-
jumlah ALUS karena ALUS yang multitafsir tiplexed oleh jumlah yang lebih
dinormalisasi ke 2warps x 2threads con fi gurasi. Seperti yang kita memprediksi,
tinggi dari warps. Peningkatan jumlah warps melibatkan perubahan berikut ke
sebagian besar waktu, seperti yang kita meningkatkan jumlah benang (yaitu,
perangkat keras: 1) meningkatkan logika untuk warp scheduler, 2)
meningkatkan SIMD lebar.), Kinerja meningkat, tapi tidak terlalu banyak dari
meningkatkan jumlah tabel GPR, 3) meningkatkan jumlah tumpukan IPDOM,
peningkatan jumlah warps. Beberapa benchmark mendapatkan ts fi bene dari
4) meningkatkan jumlah scoreboards register, dan
peningkatan jumlah warps seperti BFS, tetapi dalam sebagian besar kasus
meningkatkan jumlah warps tidak diterjemahkan ke dalam kinerja diuntungkan.
5) meningkatkan ukuran meja warp. Sangat penting untuk dicatat bahwa biaya
Alasan utama adalah bahwa untuk mengurangi waktu simulasi, kita menghangat
peningkatan jumlah warps tergantung pada jumlah benang benang lungsin itu;
cache dan mengurangi ukuran kumpulan data, sehingga cache hit rate dalam
sehingga meningkatkan warps untuk gurations benang con fi yang lebih besar
benchmark dievaluasi tinggi. Peningkatan jumlah warps biasanya berguna untuk
menjadi lebih mahal. Hal ini karena ukuran masing-masing meja GPR, IPDOM
menyembunyikan operasi selama latency seperti cache misses dengan
stack, dan meja warp tergantung pada jumlah benang.
meningkatkan TLP dan

Gambar 8 menunjukkan kenaikan di daerah dan kekuasaan seperti yang kita


meningkatkan jumlah benang dan warps. Jumlah itu dinormalisasi ke 1 warp dan 1 Tolok ukur yang tidak dievaluasi dalam makalah ini adalah karena kurangnya dukungan dari

1 dukungan benang. Semua data LLVM RISC-V.


kekuatan konfigurasi desain Keuntungan yang hwacha memiliki lebih dari prosesor SIMT murni seperti Vortex
7
yang efisien 0,3

6
efisiensi daya metrik

0.25
adalah kemampuannya untuk tumpang tindih eksekusi instruksi skalar pada skalar
prosesor yang meningkatkan kompleksitas hardware untuk manajemen bahaya.
energi
5
efisiensi daya (dinormalisasi ke 2x2)

0,2

Energi (J)
0,15
3

Simty [6] alat prosesor khusus RISC-V chitecture ar yang mendukung SIMT
0,1
2

0,05

eksekusi yang mirip dengan Vortex, tetapi dengan kontrol yang berbeda fl ow
1

0 0

perbedaan penanganan. Dalam bekerja, hanya mikroarsitektur dilaksanakan


16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32

16x32
32x32
2x2

2x2

2x2

2x2

2x2

2x2

2x2
8X32

8X32

8X32

8X32

8X32

8X32

8X32
2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32

2x16
2x32
4x32
2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8

2x4
2x8
sgemm saxpy sfilter BFS gaussian vecadd nearn
sebagai bukti dari konsep dan tidak ada software stack, dan tidak ada aplikasi
GPGPU dieksekusi dengan arsitektur.
Gambar 10:. Daya efisiensi (# dari warps x # dari benang (Power efisiensi dan
Energi)
VII. C ONCLUSIONS

Dalam makalah ini kami mengusulkan Vortex yang didukung versi diperpanjang
MLP; Dengan demikian, patokan yang diuntungkan paling dari hitungan warp tinggi
dari RISC-V untuk aplikasi GPGPU. Kami juga memodi- fi ed software OpenCL stack
BFS yang merupakan patokan yang tidak teratur.
(PoCL) untuk menjalankan berbagai kernel OpenCL dan menunjukkan bahwa. Kami
Seperti kita meningkatkan jumlah benang dan warps, meningkat konsumsi daya
berencana untuk melepaskan Vortex RTL dan PoCL modi fi kasi untuk umum. 2 Kami
tetapi mereka tidak selalu menghasilkan performa yang lebih. Oleh karena itu,
percaya bahwa versi Open Source dari RISC-V GPGPU akan memperkaya sistem
sebagian besar tenaga ef poin desain fi sien bervariasi tergantung pada benchmark.
gema RISC-V dan mempercepat peneliti lain yang GPGPUs studi di topik yang lebih
Gambar 10 menunjukkan kekuatan efisiensi metrik (mirip dengan kinerja per watt)
luas karena seluruh software stack juga didasarkan pada Open Source
yang dinormalisasi ke 2 warps x 2 benang con fi gurasi. Hasil penelitian
implementasi.
menunjukkan bahwa bagi banyak benchmark, paling desain daya yang efisien
adalah satu dengan jumlah yang lebih sedikit dari warps dan 32 thread kecuali untuk
patokan BFS. Seperti yang kita bahas sebelumnya sejak BFS patokan mendapat
R EFERENCES
kinerja terbaik dari 32 warps x 32 benang con fi gurasi, hal itu juga menunjukkan
sebagian besar kekuasaan ef fi titik desain efisien. [1] K. Asanovic, RISC-V Vector Extension. [ On line]. Tersedia: https:
//github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc [2] K. Asanovi'
c et al., “Instruksi set harus bebas: Kasus untuk risc-
v,” EECS Departemen, University of California, Berkeley, Tek. Rep. UCB / EECS-2014-146, 2014.

E. Penempatan dan tata letak [3] MA Cavalcante et al., “Ara: A 1 GHz + terukur dan energi yang efisien
RISC-V prosesor vektor dengan multi-presisi terapung dukungan titik di 22 nm FD-SOI,” Corr, vol.
Kami disintesis RTL kami menggunakan perpustakaan pendidikan 15-nm. abs / 1906,00478, 2019. [4] C. Celio et al., “Boomv2: open-source out-of-order RISC-v inti,”
Menggunakan Innovus, kami juga melakukan tempat dan rute (PNR). Gambar 7
di Lokakarya pertama pada Arsitektur Komputer Penelitian dengan RISC-V (CARRV), 2017.
menunjukkan tata letak GDS dan kekuatan kepadatan peta prosesor Vortex kami.
Dari peta kekuatan kepadatan, kita mengamati bahwa kekuasaan didistribusikan [5] S. Che et al., “Rodinia: Sebuah benchmark suite untuk comput- heterogen
dengan baik di antara daerah sel. Selain itu, kami mengamati memori termasuk ing,”ser. IISWC '09. IEEE Computer Society, 2009.
[6] S. Collange, “Simty: umum eksekusi SIMT pada RISC-v,” di Pertama
GPR, cache data, instruksi icache dan memori bersama telah konsumsi daya yang
Workshop Arsitektur Komputer Penelitian dengan RISC-V (CARRV
lebih tinggi. 2017), 2017, p. 6.
[7] JJ Corinna Vinschen, “Newlib,” http://sourceware.org/newlib, 2001. [8] WWL Fung et al., “Pembentukan
warp Dinamis dan penjadwalan untuk
yang efisien gpu kontrol fl ow,”ser. MICRO 40. IEEE Computer Society,
VI. R GEMBIRA W ORK
2007, hlm. 407-420.
ARA [3] adalah RISC-V Vector Processor yang menerapkan [9] M. Gautschi et al., “Dekat-batas RISC-v core dengan dsp ekstensi untuk
scalable perangkat endpoint idiot,” IEEE Transaksi pada Very Large Scale Integration (VLSI)
variabel-panjang Model eksekusi multiple-data tunggal-instruksi mana instruksi
Systems, vol. 25, tidak ada. 10, pp. 2700-2713, 2017. [10] G. Gobieski et al., “Manic: Sebuah vektor-data
vektor mengalir ke jalur vektor dan eksekusi mereka adalah waktu-multiplexing yang fl ow arsitektur untuk ultra-rendah

lebih unit eksekusi bersama untuk meningkatkan ef energi fi siensi. desain ara kekuatan embedded system,”ser. MICRO '52. ACM, 2019, hlm. 670-684. [11] J. Gray, “Grvi
phalanx: Sebuah besar-besaran sejajar RISC-v FPGA accelerator
didasarkan pada open-source usulan RISC-V Vector ISA Perpanjangan [1]
akselerator,”di 2016 IEEE 24 Tahunan Simposium Internasional Bidang-Programmable
mengambil keuntungan dari nya vektor-panjang ISA agnostik dan santai Kustom Mesin Computing (FCCM). IEEE,
register vektor arsitektur. Memaksimalkan pemanfaatan prosesor vektor dapat 2016, hlm. 17-20.
[12] Green500, “daftar Green500 - Juni 2019,” 2019. [online]. Tersedia:
menantang, secara khusus ketika berhadapan dengan data kontrol tergantung
https://www.top500.org/lists/2019/06/ [13] P. Jaaskelainen et al., “PoCL: bahasa komputasi
fl ow. Itu adalah di mana SIMT arsitektur seperti Vortex hadir keuntungan portabel,” Internasional
dengan fleksibel skalar-benang mereka yang dapat menyimpang secara Journal of Paralel Pemrograman, pp. 752-785, 2015. [14] PO Jskelinen et al., “Metodologi
desain berbasis OpenCL untuk
independen.
aplikasi-spesifik prosesor,”di 2010 Konferensi Internasional tentang Sistem Komputer
Embedded: Arsitektur, Pemodelan dan Simulasi,
Juli 2010, hlm. 223-230. [15] Y. Lee et al., “Sebuah 45nm 1.3GHz 16,7 presisi ganda g fl ops /
w RISC-v
Hwacha [15] adalah RISC-V prosesor skalar dengan akselerator vektor yang
prosesor dengan akselerator vektor,”di ESSCIRC 2014 - 40 Eropa Sirkuit Solid State
mengimplementasikan sebuah SIMT-seperti arsitektur di mana vektor petunjuk Conference (ESSCIRC), September 2014, hlm. 199-202.
aritmatika diperluas ke mikro-ops dan dijadwalkan pada benang pengolahan
Saat github adalah swasta untuk diperiksa buta.
terpisah pada pedal gas. 2
[16] Y. Lee et al., “Sebuah 45nm 1,3 ghz 16,7 presisi ganda g fl ops / w RISC-v
prosesor dengan akselerator vektor,”di ESSCIRC 2014-40th Eropa Sirkuit Solid State
Conference (ESSCIRC). IEEE 2014, hlm. 199-202. [17] A. Munshi, “The OpenCL spesifik kation,”
di 2009 IEEE Hot Chips 21
Simposium (HCS), Agustus 2009, hlm. 1-314. [18] V. Narasiman et al., “Meningkatkan kinerja
GPU melalui warps besar dan
dua tingkat penjadwalan warp,”ser. MICRO-44. New York, NY, USA: ACM, 2011, hlm
308-317..
[19] NVIDIA, “Cuda utilitas biner,” NVIDIA Aplikasi Catatan, 2014. [20] A. Waterman et al., “Instruksi
RISC-v set manual. Volume 1: User-
isa tingkat, versi 2.0,”EECS Departemen, UC Berkeley, Tek. Reputasi.,
2014.
[21] A. Waterman et al., “Instruksi RISC-v set manual, Volume i: Basis
user-level isa,” EECS Departemen, UC Berkeley, Tek. Rep. UCB / EECS- 2011-62, vol. 116,
2011. [22] B. Zimmer et al., “Sebuah prosesor vektor RISC-v dengan erat terintegrasi

beralih-kapasitor konverter dc-dc di 28nm fdsoi,”di 2015 Simposium VLSI Sirkuit (VLSI Sirkuit).
IEEE 2015, pp. C316-C317.

Anda mungkin juga menyukai