Berapa banyak "unit paralel" yang dimiliki GPU?

8

Saya ingin tahu berapa banyak unit paralel untuk memproses simpul yang dimiliki GPU.

Halaman Wikipedia ini menyediakan GFLOPS dan kecepatan clock, misalnya untuk Radeon 5850 "Broadway PRO", Anda mendapatkan 1000 GFLOPS. Asumsikan menjalankan vertex shader adalah 100 jepit, maka itu berarti Anda dapat memproses 1000e9 / 100 = 10e9 simpul per detik.

Apakah ada produsen yang menerbitkan jumlah unit pemrosesan paralel , atau cara untuk mengetahui jumlah itu?

bobobobo
sumber
8
Ini bervariasi dari setiap model kartu ke yang berikutnya. Apa tujuan dari pertanyaan ini?
AttackingHobo
Saya setuju dengan AttackingHobo, itu tidak relevan dengan jumlah core karena setiap chip memiliki jumlah yang berbeda dan juga mereka bekerja secara berbeda sehingga dalam model 30 core mungkin lebih kuat daripada satu dengan 60 core. Anda juga harus merujuk ke setiap spesifikasi chip dari pabrikan jika Anda tidak mempercayai info yang ada di wikipedia (yang mungkin akurat)
Pablo Ariel
1
stackoverflow.com/questions/6490572/…
Ciro Santilli 冠状 病毒 审查 六四 事件 事件 法轮功

Jawaban:

27

Asumsikan menjalankan vertex shader adalah 100 jepit, maka itu berarti Anda dapat memproses 1000e9 / 100 = 10e9 simpul per detik.

Tidak, itu pasti tidak.

Pada dasarnya, Anda harus mempertimbangkan perhitungan kecepatan eksekusi kode apa pun hanya berdasarkan hitungan "FLOPS" sebagai tersangka. Memang, umumnya lebih baik jika Anda mengabaikan FLOPS sepenuhnya.

Anda tidak mendefinisikan istilah "unit paralel"; tanpa definisi itu, kami hanya bisa menebak apa yang Anda inginkan.

Ambil Radeon 5870. Ini memiliki 1600 unit floating-point. Itu berarti, untuk setiap siklus, dapat menjalankan 1.600 operasi titik mengambang skalar sekaligus. Namun, setiap opcode VLIW bekerja pada register matematika vektor 5 arah. Jadi rincian terkecil dari kode aktual adalah 1600/5, atau 320 (catatan: ini adalah penyederhanaan besar ). Itu 320 utas.

Namun , itu bukan cara kerjanya. Anda tidak memiliki 320 jalur eksekusi yang terpisah. Anda tidak dapat memiliki 320 bagian kode yang berbeda yang dijalankan pada 320 unit yang berbeda. Lihat, VLIW 5 arah itu sendiri dikelompokkan menjadi inti SIMD 4 arah. Setiap SIMD dapat memiliki jalur eksekusi sendiri dan kode sumbernya sendiri. Setiap VLIW dalam inti SIMD dapat memiliki data terpisah, sehingga mereka menghitung nilai yang terpisah. Tetapi setiap VLIW dalam inti SIMD mengeksekusi instruksi yang sama dalam langkah-kunci dengan VLIW lain dalam inti itu.

Jadi sungguh, Anda hanya memiliki 320/4, atau 80 utas total. Tetapi sekali lagi, itu tergantung pada "unit paralel" seperti apa yang Anda bicarakan. Secara teknis, 1600, 320, dan 80 semuanya adalah jawaban yang sah.

Dan itu hanya untuk satu arsitektur tertentu . Garis Fermi NVIDIA (GeForce 4xx dan yang lebih tinggi) menggunakan arsitektur yang sangat berbeda. Garis Cayman ATI (Radeon 69xx) mengubah VLIW 5 arah menjadi VLIW 4 arah. Arsitektur mereka selanjutnya mungkin memiliki beberapa perbedaan yang signifikan juga.

Tanpa mengetahui apa yang Anda cari, tidak ada cara untuk menjawab pertanyaan itu.

Nicol Bolas
sumber
Bagus. Saya menemukan artikel ini pada arsitektur GPU, juga, tetapi di mana Anda menemukan unit floating-point penting? Itu yang saya cari.
bobobobo
@obobobo: Itu ada di halaman Wikipedia yang Anda tautkan. Juga, artikel Permata GPU itu khusus untuk jalur GeForce 6-7. Umurnya juga 6 tahun.
Nicol Bolas
Sangat menarik bahwa Anda mengucapkan SIMD dengan hurufnya masing-masing. VLIW adalah seteguk membingungkan dengan apa pun selain surat-suratnya, tetapi sebagian besar (semua, pada kenyataannya) programmer sistem saya telah bekerja dengan mengatakan "sim dee".
Andon M. Coleman
@NicolBolas, Bung, 80 instruksi bersamaan? Frigging itu masih mengalahkan 8 atau 16 yang biasa Anda dapatkan dari CPU.
Pacerier
3

Saya tidak mengerti, apa yang Anda maksud dengan unit pemrosesan paralel? unit shader? Karena ppu dan gpu saat ini pada dasarnya adalah hal yang sama, maksud saya ppu ADALAH gpu jika kita berbicara tentang ati radeon.

Saya kira maksud Anda unit fungsional, Anda harus membaca Config corebidang di wikipedia:

Config Core – The layout of the graphics pipeline, in terms of functional units. Over time the number, type and variety of functional units in the GPU core has changed significantly; before each section in the list there is an explanation as to what functional units are present in each generation of processors.

jadi untuk radeon kamu mengatakan itu akan memiliki:

Unified Shaders (Vertex shader/Geometry shader/Pixel shader) : Texture mapping unit : Render Output unit

yang untuk broadway pro adalah: 800:40:16

ini berarti memiliki 800 unit shader, 40 unit pemetaan tekstur dan 16 unit output render.

EDIT: Ya tidak, sepertinya unit pemrosesan paralel juga diterapkan pada apa yang Anda maksud, jadi saya kira agak membingungkan memanggil mereka seperti itu. Saya akan menyebutnya unit shader atau simd core.

Pablo Ariel
sumber
Apa PPU ??
Pacerier