numthreads
Menentukan jumlah utas yang akan dijalankan dalam satu grup utas saat shader komputasi dikirim (lihat ID3D11DeviceContext::D ispatch).
numthreads(X, Y, Z)
Nilai X, Y, dan Z menunjukkan ukuran grup utas dalam arah tertentu dan total X*Y*Z memberikan jumlah utas dalam grup. Kemampuan untuk menentukan ukuran grup utas di tiga dimensi memungkinkan utas individual diakses dengan cara yang secara logis struktur data 2D dan 3D.
Misalnya, jika shader komputasi melakukan penambahan matriks 4x4, numthreads dapat diatur ke numthreads(4,4,1) dan pengindeksan dalam utas individual akan secara otomatis cocok dengan entri matriks. Shader komputasi juga dapat mendeklarasikan grup utas dengan jumlah utas yang sama (16) menggunakan numthreads (16,1,1), namun kemudian harus menghitung entri matriks saat ini berdasarkan nomor utas saat ini.
Nilai parameter yang diizinkan untuk numthreads tergantung pada versi shader komputasi.
Shader Komputasi | Z Maksimum | Utas Maksimum (X*Y*Z) |
---|---|---|
cs_4_x | 1 | 768 |
cs_5_0 | 64 | 1024 |
Ilustrasi berikut menunjukkan hubungan antara parameter yang diteruskan ke ID3D11DeviceContext::D ispatch, Dispatch(5,3,2), nilai yang ditentukan dalam atribut numthreads, numthreads(10,8,3), dan nilai yang akan diteruskan ke shader komputasi untuk nilai sistem terkait utas (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID).
Atribut ini didukung dalam jenis shader berikut:
Puncak | Hull | Domain | Geometri | Pixel | Compute |
---|---|---|---|---|---|
x |
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk