Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membungkus berbagai tumpukan deskriptor yang dikelola aplikasi, dan digunakan oleh DirectML untuk membuat pengikatan untuk sumber daya. Untuk membuat objek ini, panggil IDMLDevice::CreateBindingTable. Antarmuka IDMLBindingTable mewarisi dari IDMLDeviceChild.
Tabel pengikatan dibuat di atas berbagai handel deskriptor CPU dan GPU. Ketika metode IDMLBindingTable::Bind* dipanggil, DirectML menulis satu atau beberapa deskriptor ke dalam rentang deskriptor CPU. Saat Anda menggunakan tabel pengikatan selama panggilan ke IDMLCommandRecorder::RecordDispatch, DirectML mengikat deskriptor GPU yang sesuai ke alur.
Handel deskriptor CPU dan GPU tidak diperlukan untuk menunjuk ke entri yang sama dalam tumpukan deskriptor, namun kemudian merupakan tanggung jawab aplikasi Anda untuk memastikan bahwa seluruh rentang deskriptor yang dirujuk oleh handel deskriptor CPU disalin ke dalam rentang yang dirujuk oleh handel deskriptor GPU sebelum eksekusi menggunakan tabel pengikatan ini.
Aplikasi Anda bertanggung jawab untuk melakukan sinkronisasi yang benar antara pekerjaan CPU dan GPU yang menggunakan tabel pengikatan ini. Misalnya, Anda harus berhati-hati untuk tidak menimpa pengikatan yang dibuat oleh tabel pengikatan (misalnya, dengan memanggil Bind* lagi pada tabel pengikatan, atau dengan menimpa tumpukan deskriptor secara manual) sampai semua pekerjaan menggunakan tabel pengikatan telah menyelesaikan eksekusi pada GPU. Selain itu, karena tabel pengikatan tidak mempertahankan referensi pada tumpukan deskriptor yang ditulisnya, Anda tidak boleh melepaskan tumpukan deskriptor yang terlihat shader backing sampai semua bekerja menggunakan tabel pengikatan tersebut telah menyelesaikan eksekusi pada GPU.
Tabel pengikatan dikaitkan dengan tepat satu objek yang dapat dikirim (penginisialisasi operator, atau operator yang dikompilasi), dan mewakili pengikatan untuk objek tertentu. Namun, Anda dapat menggunakan kembali tabel pengikatan dengan memanggil IDMLBindingTable::Reset. Perhatikan bahwa karena tabel pengikatan tidak memiliki tumpukan deskriptor itu sendiri, aman untuk memanggil Reset dan menggunakan kembali tabel pengikatan untuk objek yang dapat dikirim yang berbeda bahkan sebelum eksekusi yang luar biasa telah selesai pada GPU.
Tabel pengikatan tidak menyimpan referensi yang kuat pada sumber daya apa pun yang terikat menggunakannya—aplikasi Anda harus memastikan bahwa sumber daya tidak dihapus saat masih digunakan oleh GPU.
Objek ini tidak aman untuk utas—aplikasi Anda tidak boleh memanggil metode pada tabel pengikatan secara bersamaan dari utas yang berbeda tanpa sinkronisasi.
Warisan
Antarmuka IDMLBindingTable mewarisi dari antarmuka IDMLDeviceChild.
Metode
Antarmuka IDMLBindingTable memiliki metode ini.
|
IDMLBindingTable::BindInputs Mengikat sekumpulan sumber daya sebagai tensor input. |
|
IDMLBindingTable::BindOutputs Mengikat sekumpulan sumber daya sebagai tensor output. |
|
IDMLBindingTable::BindPersistentResource Mengikat buffer sebagai sumber daya persisten. Anda dapat menentukan ukuran rentang buffer yang diperlukan dengan memanggil IDMLDispatchable::GetBindingProperties. |
|
IDMLBindingTable::BindTemporaryResource Mengikat buffer untuk digunakan sebagai memori goresan sementara. Anda dapat menentukan ukuran rentang buffer yang diperlukan dengan memanggil IDMLDispatchable::GetBindingProperties. |
|
IDMLBindingTable::Reset Mengatur ulang tabel pengikatan untuk membungkus rentang deskriptor baru, berpotensi untuk operator atau penginisialisasi yang berbeda. Ini memungkinkan penggunaan kembali dinamis tabel pengikatan. |
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Target Platform | Windows |
| Header | directml.h |