- Meningkatkan Presisi ganda Kinerja sementara presisi tunggal kinerja floating point berada di urutan sepuluh kali kinerja CPU desktop beberapa aplikasi komputasi GPU yang diinginkan kinerja presisi ganda.
- ECC dukungan ECC memungkinkan pengguna komputasi GPU untuk aman menyebarkan sejumlah besar GPU dalam instalasi datacenter, dan juga memastikan aplikasi data sensitif seperti pencitraan medis dan pilihan keuangan harga yang dilindungi dari kesalahan memori.
- Benar Cache Hierarchy-beberapa algoritma paralel tidak dapat menggunakan memori GPU, dan pengguna diminta arsitektur cache yang benar untuk membantu mereka. Penggunaan memory lebih banyak, programmer CUDA meminta lebih dari 16 KB dari SM memori bersama untuk mempercepat aplikasi mereka.
- Konteks Cepat pengguna Switching diminta konteks yang lebih cepat beralih di antara program aplikasi dan grafis yang lebih cepat dan menghitung interoperation
Dengan permintaan ini dalam
pikiran, tim Fermi merancang prosesor yang sangat meningkatkan komputasi mentah
tenaga kuda, dan melalui inovasi arsitektur, juga menawarkan meningkat secara
dramatis programmability dan menghitung efisiensi. Highlights arsitektur utama
Fermi adalah:
- Generasi Ketiga Streaming Multiprocessor (SM)
§ 32 CUDA
core per SM, 4x lebih GT200
§ 8x presisi
ganda puncak kinerja floating poin atas GT200
§ Ganda Warp
Scheduler bersamaan jadwal dan mengirimkan instruksi dari dua warps independen
§ 64 KB RAM
dengan partisi dikonfigurasi memori bersama dan cache L1
§ Bersatu Ruang
Alamat dengan Dukungan Penuh C ++
§ Dioptimalkan
untuk OpenCL dan DirectCompute
§ Kendali
IEEE 754-2008 32-bit dan 64-bit presisi
§ penuh
32-bit jalur bilangan bulat dengan ekstensi 64-bit
§ instruksi
akses memori untuk mendukung transisi ke 64-bit
§ Peningkatan
Kinerja melalui Prediction
§ NVIDIA
DataCacheTM Paralel hirarki dengan Dikonfigurasi L1 dan L2Caches Bersatu
§ GPU pertama
dengan dukungan memori ECC
§ Sangat
meningkatkan kinerja operasi memori atom
§ 10x lebih
cepat aplikasi switching konteks
§ eksekusi
kernel Concurrent
§ Out of
Order eksekusi thread block
§ Ganda
tumpang tindih mesin perpindahan memori.
Gambaran Umum Arsitektur Fermi
GPU berbasis Fermi pertama,
dilaksanakan dengan 3,0 miliar transistor, fitur hingga 512 CUDA core. Sebuah
inti CUDA mengeksekusi titik atau integer instruksi floating per jam untuk
benang. 512 core CUDA diatur dalam 16 SM dari 32 core masing-masing. GPU ini
memiliki enam partisi memori 64-bit, untuk antarmuka memori 384-bit, mendukung
hingga total 6 GB memori GDDR5 DRAM. Sebuah antarmuka host menghubungkan GPU ke
CPU melalui PCI-Express. The GigaThread scheduler global yang mendistribusikan
benang blok ke SM benang penjadwal.
Fermi 16 SM diposisikan sekitar
cache L2 umum. Setiap SM adalah persegi panjang jalur vertikal yang mengandung
bagian jeruk (scheduler dan pengiriman), sebagian hijau (unit eksekusi), dan
bagian-bagian biru muda (register file dan cache L1).
Unit 16 Load / Simpan
Setiap SM memiliki 16 unit load /
store, yang memungkinkan sumber dan alamat tujuan harus dihitung selama enam
belas benang per jam. Mendukung unit beban dan menyimpan data pada setiap
alamat untuk cache atau DRAM.
Empat Unit Fungsi Khusus
Unit Fungsi Khusus (SFUs) mengeksekusi
instruksi transendental seperti sin, cosinus, timbal balik, dan akar kuadrat.
Setiap SFU mengeksekusi satu instruksi per benang, per jam; warp mengeksekusi
lebih dari delapan jam. The SFU pipa dipisahkan dari unit pengiriman, yang
memungkinkan unit pengiriman untuk mengeluarkan unit eksekusi lainnya sementara
SFU ditempati.
Dirancang untuk presisi ganda
Dua aritmatika presisi adalah
jantung dari aplikasi HPC seperti aljabar linear, simulasi numerik, dan kimia
kuantum. Arsitektur Fermi telah secara khusus dirancang untuk menawarkan
kinerja belum pernah terjadi sebelumnya dalam presisi ganda; hingga 16 presisi
ganda menyatu multiply-add operasi dapat dilakukan per SM, per jam, peningkatan
dramatis atas arsitektur GT200.
Evaluasi kinerja awal menunjukkan
Fermi melakukan sampai 4.2x lebih cepat dari GT200 dalam aplikasi presisi
ganda.
Inovasi Memory Subsystem
NVIDIA Paralel Data Cache TM digurasi L1 dan L2 Cache Bersatu.
Bekerja dengan ratusan aplikasi
komputasi GPU dari berbagai industri, kita belajar bahwa sementara memori
Bersama manfaat banyak masalah, itu tidak sesuai untuk semua masalah. Beberapa
algoritma peta alami ke memori bersama, yang lainnya memerlukan cache,
sementara yang lainnya memerlukan kombinasi keduanya. Hirarki memori yang
optimal harus menawarkan manfaat dari kedua dan cache memori bersama, dan
memungkinkan programmer pilihan atas partisi nya. Hirarki memori Fermi
menyesuaikan dengan kedua jenis perilaku program. Menambahkan hirarki cache
yang benar untuk operasi load / store disajikan tantangan yang signifikan.
Arsitektur GPU Tradisional mendukung pembacaan '' beban '' jalan untuk operasi
tekstur dan penulisan '' ekspor '' jalur untuk data output pixel. Namun,
pendekatan ini kurang cocok untuk melaksanakan tujuan C umum atau program
benang C ++ yang mengharapkan membaca dan menulis harus dipesan. Sebagai salah
satu contoh: menumpahkan operand register ke memori dan kemudian membaca
kembali menciptakan membaca setelah menulis bahaya; jika membaca dan menulis
jalur terpisah, mungkin perlu secara eksplisit menyiram seluruh penulisan ''
ekspor '' jalan sebelum aman untuk mengeluarkan membaca, dan setiap cache di jalan
membaca tidak akan kebigungan sehubungan dengan menulis data.
Fermi alamat arsitektur tantangan
ini dengan menerapkan jalur permintaan memori tunggal terpadu untuk beban dan
toko, dengan cache L1 per SM multiprosesor dan bersatu L2 cache yang layanan
semua operasi (beban, menyimpan dan tekstur). Per-SM L1 cache dikonfigurasi
untuk mendukung kedua memori bersama dan caching operasi memori lokal dan
global. 64 KB memori dapat dikonfigurasi baik sebagai 48 KB memori bersama
dengan 16 KB dari L1 cache, atau 16 KB memori bersama dengan 48 KB dari L1.
Ketika dikonfigurasi dengan 48 KB dari memori bersama, program yang membuat
ekstensif menggunakan memori bersama (seperti simulasi elektrodinamik) dapat
melakukan hingga tiga kali lebih cepat. Untuk program yang memori akses tidak
diketahui sebelumnya, 48 cache konfigurasi KB L1 menawarkan sangat meningkatkan
kinerja atas akses langsung ke DRAM.
Dalam konfigurasi baik, cache L1
juga membantu dengan caching tambahan daftar sementara program yang kompleks. GPU
generasi sebelumnya tambahan register langsung ke DRAM, meningkatkan akses
latency. Dengan cache L1, timbangan kinerja anggun dengan peningkatan penggunaan
daftar sementara.
Fermi memiliki 768 KB L2 cache yang
bersatu layanan semua permintaan beban, menyimpan, dan tekstur. The L2
menyediakan efisien, kecepatan tinggi berbagi data di GPU. Algoritma yang alamat
data yang tidak diketahui sebelumnya, seperti pemecah fisika, raytracing, dan
jarang perkalian matriks terutama manfaat dari hirarki cache. Filter dan
konvolusi kernel yang memerlukan beberapa SM untuk membaca data yang sama juga
menguntungkan.
GPU pertama dengan ECC Dukungan Memori
Fermi adalah GPU pertama yang
mendukung Kesalahan Correcting Code (ECC) perlindungan berbasis data di memori.
ECC diminta oleh pengguna komputasi GPU untuk meningkatkan integritas data
dalam lingkungan komputasi kinerja tinggi. ECC adalah fitur yang sangat
diinginkan di berbagai bidang seperti pencitraan medis dan cluster komputasi
skala besar. Tentu terjadi radiasi dapat menyebabkan sedikit yang disimpan
dalam memori untuk diubah, sehingga terjadinya error sedikit. Teknologi ECC
mendeteksi dan mengoreksi single-bit error kecil sebelum mereka mempengaruhi
system, Karena kemungkinan radiasi yang disebabkan kesalahan tersebut meningkat
secara linear dengan jumlah sistem terinstal. ECC merupakan persyaratan penting
dalam instalasi cluster yang besar. Fermi mendukung Mendeteksi kode (SECDED)
ECC Single-Kesalahan Correct dua Kesalahan Itu benar Setiap kesalahan bit
tunggal dalam hardware Sebagai data Apakah diakses. Selain itu, SECDED ECC
Memastikan Bahwa semua Kesalahan bit ganda dan Banyak Kesalahan multi-bit juga
dapat dideteksi dan dilaporkan sehingga program dapat kembali menjalankan
bukannya dibiarkan terus melaksanakan dengan data yang buruk.
Cache L1, L2 cache, dan memori DRAM
adalah ECC dilindungi, sehingga tidak hanya GPU yang paling kuat untuk aplikasi
HPC, tetapi juga yang paling handal. Selain itu, Fermi mendukung standar
industri untuk memeriksa data selama transmisi dari chip ke chip. Semua GPU
NVIDIA termasuk dukungan untuk standar PCI Express untuk CRC memeriksa dengan
retry pada lapisan data link. Fermi juga mendukung standar GDDR5 yang sama
untuk CRC memeriksa dengan retry (alias "EDC") selama transmisi data
seluruh ke memori.
Memory Atom cepat Operasi
Operasi memori atom adalah penting
dalam pemrograman paralel, yang memungkinkan benang bersamaan untuk benar
melakukan operasi read-memodifikasi-menulis pada struktur data bersama. Atomic
operasi seperti menambah, min, max, dan bandingkan-dan-swap atom dalam arti bahwa
membaca, memodifikasi, dan menulis operasi dilakukan tanpa diganggu oleh benang
lain. Atomic operasi memori secara luas digunakan untuk penyusunan paralel,
operasi pengurangan, dan data bangunan struktur secara paralel tanpa kunci yang
cerita eksekusi thread. Berkat kombinasi unit atom lebih di hardware dan
penambahan cache L2, kinerja operasi atom hingga 20 × lebih cepat di Fermi
dibandingkan dengan generasi GT200.
Giga Thread TM Thread Scheduler
Salah satu teknologi yang paling
penting dari arsitektur Fermi adalah yang dua tingkat, didistribusikan benang
scheduler. Pada tingkat chip, blok jadwal mesin benang pembagian kerja global
yang berbagai SM, sementara di tingkat SM, setiap scheduler warp
mendistribusikan warps dari 32 benang untuk unit pelaksanaannya. Pertama mesin
Giga Thread generasi diperkenalkan di G80 berhasil sampai 12.288 benang secara
realtime. Arsitektur Fermi meningkatkan pada yayasan ini dengan tidak
menyediakan tempat yang lebih besar, tapi konteks switching secara dramatis
lebih cepat, kernel bersamaan eksekusi, dan meningkatkan penjadwalan thread
blok. 10x lebih cepat Aplikasi Konteks Switching Seperti CPU, GPU mendukung
multitasking melalui penggunaan konteks switching, di mana masing-masing
Program menerima sepotong waktu sumber daya prosesor. Fermi pipa dioptimalkan
untuk mengurangi biaya saklar konteks aplikasi di bawah 25 mikrodetik,
signifikan perbaikan atas GPU generasi terakhir. Selain meningkatkan kinerja,
hal ini memungkinkan pengembang untuk membuat aplikasi yang memanfaatkan lebih
sering kernel-to-kernel komunikasi, seperti halus interoperation antara grafis
dan aplikasi PhysX.
Concurrent Kernel Eksekusi
Fermi mendukung eksekusi kernel
bersamaan, kernel mana yang berbeda dari aplikasi yang sama konteks dapat
mengeksekusi pada GPU pada saat yang sama. Eksekusi kernel Concurrent memungkinkan
program yang mengeksekusi sejumlah kernel kecil untuk memanfaatkan seluruh GPU.
Sebagai contoh, Program PhysX dapat memanggil pemecah cairan dan pemecah tubuh
kaku yang, jika dijalankan berurutan, akan menggunakan hanya setengah dari
prosesor benang yang tersedia. Pada arsitektur Fermi, kernel yang berbeda dari
konteks CUDA yang sama dapat mengeksekusi secara bersamaan, memungkinkan
maksimum pemanfaatan sumber daya GPU. Kernel dari konteks aplikasi yang berbeda
masih dapat menjalankan berurutan dengan efisiensi yang besar berkat
peningkatan kinerja konteks switching.
Sumber Materi
Tidak ada komentar:
Posting Komentar