


Tingkatkan prestasi AI hujung ke hujung melalui gabungan operator tersuai
Pengoptimuman graf memainkan peranan penting dalam mengurangkan masa dan sumber yang digunakan oleh latihan dan inferens model AI. Fungsi penting pengoptimuman graf adalah untuk menggabungkan operator yang boleh digabungkan dalam model, dengan itu meningkatkan kecekapan pengkomputeran dengan mengurangkan penggunaan memori dan pemindahan data dalam memori berkelajuan rendah. Walau bagaimanapun, adalah sangat sukar untuk melaksanakan penyelesaian bahagian belakang yang boleh menyediakan pelbagai gabungan operator, menghasilkan gabungan operator yang sangat terhad yang boleh digunakan oleh model AI pada perkakasan sebenar.
Perpustakaan Inti Tersusun (CK) bertujuan untuk menyediakan satu set penyelesaian bahagian belakang untuk gabungan operator pada GPU AMD. CK menggunakan bahasa pengaturcaraan tujuan umum HIP C++ dan sumber terbuka sepenuhnya. Konsep reka bentuknya termasuk:
- Prestasi tinggi & produktiviti tinggi: Teras CK ialah satu set modul asas yang direka dengan teliti, sangat dioptimumkan dan boleh diguna semula. Semua operator dalam perpustakaan CK dilaksanakan dengan menggabungkan modul asas ini. Menggunakan semula modul asas ini sangat memendekkan kitaran pembangunan algoritma bahagian belakang sambil memastikan prestasi tinggi.
- Mahir dalam masalah AI semasa dan cepat menyesuaikan diri dengan masalah AI masa hadapan: CK menyasarkan untuk menyediakan satu set lengkap penyelesaian bahagian belakang pengendali AI, yang membolehkan gabungan operator yang kompleks keseluruhan bahagian belakang yang akan dilaksanakan menggunakan CK tanpa bergantung pada perpustakaan pengendali luaran. Modul asas boleh guna semula CK mencukupi untuk melaksanakan pelbagai pengendali dan gabungannya diperlukan oleh model AI biasa (penglihatan mesin, pemprosesan bahasa semula jadi, dsb.). Apabila model AI yang baru muncul memerlukan pengendali baharu, CK juga akan menyediakan modul asas yang diperlukan.
- Alat yang ringkas tetapi berkuasa untuk pakar sistem AI: CK Semua pengendali dilaksanakan menggunakan templat HIP C++. Pakar sistem AI boleh menyesuaikan sifat pengendali ini melalui templat instantiasi, seperti jenis data, jenis operasi meta, format storan tensor, dsb. Ini biasanya hanya memerlukan beberapa baris kod.
- Antara muka HIP C++ yang mesra: Pembangun algoritma HPC telah mendorong sempadan pecutan pengkomputeran AI. Konsep reka bentuk penting CK adalah untuk memudahkan pembangun algoritma HPC menyumbang kepada pecutan AI. Oleh itu, semua modul teras CK dilaksanakan dalam HIP C++ dan bukannya Perwakilan Pertengahan (IR). Pembangun algoritma HPC menulis algoritma secara langsung dalam format C++ yang biasa mereka gunakan, tanpa perlu menulis Pas Pengkompil untuk algoritma tertentu, seperti halnya dengan perpustakaan pengendali berasaskan IR. Melakukannya boleh meningkatkan kelajuan lelaran algoritma.
- Kemudahalihan: Pengoptimuman graf hari ini menggunakan CK sebagai bahagian belakang akan dapat dialihkan ke semua GPU AMD akan datang, dan akhirnya akan dialihkan ke CPU AMD [2].
- Kod sumber CK: https://github.com/ROCmSoftwarePlatform/composable_kernel
Konsep Teras
CK memperkenalkan dua konsep untuk meningkatkan produktiviti pembangun bahagian belakang:
1 Pengenalan Pecah Tanah "Transformasi Koordinat Tensor" Mengurangkan kerumitan penulisan pengendali AI. Penyelidikan ini mempelopori takrifan set modul asas Transformasi Koordinat Tensor yang boleh diguna semula dan menggunakannya untuk menyatakan semula pengendali AI yang kompleks (seperti konvolusi, pengurangan normalisasi kumpulan, Depth2Space, dll.) dengan cara yang teliti secara matematik ke dalam AI yang paling asas operator (GEMM, pengurangan 2D, pemindahan tensor, dll.). Teknologi ini membolehkan algoritma yang ditulis untuk pengendali AI asas digunakan secara langsung pada semua pengendali AI kompleks yang sepadan tanpa perlu menulis semula algoritma.
2. Paradigma pengaturcaraan berasaskan jubin: Membangunkan algoritma hujung belakang untuk gabungan operator boleh dilihat sebagai mula-mula membuka setiap operator pra-gabungan (operator bebas) kepada banyak "Kepingan kecil" operasi data, dan kemudian gabungkan operasi "kepingan kecil" ini ke dalam operator bercantum. Setiap operasi "blok kecil" itu sepadan dengan pengendali bebas asal, tetapi data yang dikendalikan hanyalah sebahagian (jubin) daripada tensor asal, jadi operasi "blok kecil" sedemikian dipanggil Operator Tensor Jubin. Pustaka CK mengandungi satu set pelaksanaan Operator Tensor Jubin yang sangat dioptimumkan, dan semua pengendali bebas AI dan operator gabungan dalam CK dilaksanakan menggunakan mereka. Pada masa ini, Operator Tensor Jubin ini termasuk GEMM Jubin, Pengurangan Jubin dan Pemindahan Tensor Jubin. Setiap Operator Tensor Jubin mempunyai pelaksanaan untuk blok benang GPU, meledingkan dan benang.
Transformasi Koordinat Tensor dan Operator Tensor Jubin bersama-sama membentuk modul asas boleh guna semula CK.
Rajah 1, menggunakan modul asas Transformasi Koordinat Tensor CK untuk menyatakan pengendali konvolusi ke dalam pengendali GEMM
Rajah 2, komposisi CK (bawah: modul asas boleh guna semula; atas: operator bebas dan operator gabungan)
Struktur kod
Struktur perpustakaan CK dibahagikan kepada empat lapisan, dari bawah ke atas: Operator Jubin Templat, Kernel dan Invoker Templat, Inti Instanti dan Invoker dan API Pelanggan [3]. Setiap lapisan sepadan dengan pembangun yang berbeza.
- Pakar sistem AI: "Saya memerlukan penyelesaian bahagian belakang yang menyediakan pengendali bebas dan bersatu berprestasi tinggi yang boleh saya gunakan secara langsung." API Klien dan Kernel dan Invoker Instantiated yang digunakan dalam contoh ini [4] menyediakan objek pra-instantiated dan compiled untuk memenuhi keperluan pembangun jenis ini.
- Pakar sistem AI: "Saya melakukan kerja pengoptimuman graf terkini untuk rangka kerja AI sumber terbuka. Saya memerlukan kernel berprestasi tinggi yang boleh menyediakan semua operator gabungan diperlukan untuk pengoptimuman graf Pada masa yang sama, saya juga perlu menyesuaikan kernel ini, jadi penyelesaian kotak hitam seperti "ambil atau tinggalkan" tidak dapat memenuhi keperluan saya. Lapisan Kernel dan Invoker Templat memenuhi jenis pembangun ini. Contohnya, dalam contoh [5] ini, pembangun boleh menggunakan lapisan Kernel dan Invoker Templated untuk membuat instantiat kernel FP16 GEMM + Tambah + Tambah + FastGeLU yang diperlukan.
- Pakar algoritma HPC: “Pasukan saya membangunkan algoritma back-end berprestasi tinggi untuk model AI yang sentiasa berulang dalam syarikat Kami mempunyai pakar algoritma HPC dalam pasukan. tetapi kami masih berharap untuk menggunakan kompleks Menggunakan dan menambah baik kod sumber yang sangat dioptimumkan yang disediakan oleh vendor perkakasan meningkatkan produktiviti kami dan membolehkan kod kami dialihkan ke seni bina perkakasan masa hadapan Kami berharap dapat melakukan ini tanpa perlu berkongsi kod kami dengan vendor perkakasan. " Lapisan Operator Jubin Templat boleh membantu pembangun jenis ini. Contohnya, dalam kod [6] ini, pembangun menggunakan Operator Jubin Templat untuk melaksanakan saluran paip pengoptimuman GEMM.
Rajah 3, struktur empat lapisan perpustakaan CK
Inferens model hujung ke hujung berdasarkan AITemplate + CK
AITemplate Meta [7] (AIT) ialah sistem inferens AI yang menyatukan GPU AMD dan Nvidia. AITemplate menggunakan CK sebagai bahagian belakangnya pada GPU AMD, menggunakan lapisan Kernel dan Invoker Templated CK.
AITemplate + CK mencapai prestasi inferens terkini pada berbilang model AI penting pada AMD Instinct™ MI250. Takrifan pengendali gabungan yang paling maju dalam CK didorong oleh visi pasukan AITemplate. Banyak algoritma pengendali gabungan juga direka bentuk bersama oleh pasukan CK dan AITemplate.
Artikel ini membandingkan prestasi beberapa model hujung ke hujung pada AMD Instinct MI250 dan produk yang serupa [8]. Semua data prestasi model AMD Instinct MI250 AI dalam artikel ini diperoleh menggunakan AITemplate[9] + CK[10].
Eksperimen
ResNet-50
Imej di bawah menunjukkan AIT pada AMD Instinct MI250 + Perbandingan prestasi CK dengan TensorRT v8.5.0.12 [11] (TRT) pada A100-PCIe-40GB dan A100-DGX-80GB. Keputusan menunjukkan bahawa AIT + CK pada AMD Instinct MI250 mencapai pecutan 1.08x berbanding TRT pada A100-PCIe-40GB.
BERT
Templat operator gabungan GEMM + Softmax + GEMM Berkelompok berdasarkan pelaksanaan CK, yang boleh menghapuskan sepenuhnya pemindahan hasil perantaraan antara Unit Pengiraan GPU (Unit Pengiraan) dan HBM. Dengan menggunakan templat operator gabungan ini, banyak masalah dalam lapisan perhatian yang asalnya terikat lebar jalur telah menjadi kesesakan pengiraan (terikat pengiraan), yang boleh menggunakan kuasa pengkomputeran GPU dengan lebih baik. Pelaksanaan CK ini sangat diilhamkan oleh FlashAttention [12] dan mengurangkan lebih banyak pengendalian data daripada pelaksanaan FlashAttention yang asal.
Gambar di bawah menunjukkan AIT + CK pada AMD Instinct MI250 dengan pembetulan pepijat FasterTransformer v5.1.1 pada A100-PCIe-40GB dan A100-DGX-80GB [13] (FT) Perbandingan prestasi daripada model Bert Base (tanpa sarung). FT akan melimpahkan memori GPU pada Batch 32 pada A100-PCIe-40GB dan A100-DGX-80GB apabila Jujukan ialah 4096. Oleh itu, apabila Jujukan ialah 4096, artikel ini hanya menunjukkan keputusan Kumpulan 16. Keputusan menunjukkan bahawa AIT + CK pada AMD Instinct MI250 mencapai pecutan 3.28x FT berbanding FT pada A100-PCIe-40GB, dan kelajuan 2.91x FT berbanding dengan A100-DGX-80GB.
Vision Transformer (VIT)
Imej di bawah menunjukkan AMD Perbandingan Prestasi Naluri AIT + CK pada MI250 dengan Vision Transformer Base (imej 224x224) TensorRT v8.5.0.12 (TRT) pada A100-PCIe-40GB dan A100-DGX-80GB. Keputusan menunjukkan bahawa AIT + CK pada AMD Instinct MI250 mencapai kelajuan 1.8x berbanding TRT pada A100-PCIe-40GB, dan kelajuan 1.4x berbanding TRT pada A100-DGX-80GB.
Resapan Stabil
Resapan Stabil hujung-ke-hujung
Jadual berikut menunjukkan data prestasi AIT + CK Stable Diffusion hujung ke hujung (Batch 1, 2, 4, 6) pada AMD Instinct MI250. Apabila Batch ialah 1, hanya satu GCD digunakan pada MI250, manakala dalam Batch 2, 4 dan 6, kedua-dua GCD digunakan.
UNet dalam Stable Diffusion
Walau bagaimanapun, artikel ini belum lagi mengenai penggunaan TensorRT untuk menjalankan Stable Penyebaran maklumat awam hujung ke hujung tentang model akhir. Tetapi artikel ini "Jadikan resapan stabil 25% lebih pantas menggunakan TensorRT" [14] menerangkan cara menggunakan TensorRT untuk mempercepatkan model UNet dalam Resapan Stabil. UNet ialah bahagian Resapan Stabil yang paling penting dan memakan masa, jadi prestasi UNet secara kasar menggambarkan prestasi Resapan Stabil.
Imej di bawah menunjukkan AIT+CK pada AMD Instinct MI250 lwn. UNet untuk TensorRT v8.5.0.12 (TRT) pada A100-PCIe-40GB dan A100-DGX-80GB Perbandingan prestasi . Keputusan menunjukkan bahawa AIT + CK pada AMD Instinct MI250 mencapai kelajuan 2.45x berbanding TRT pada A100-PCIe-40GB, dan kelajuan 2.03x berbanding TRT pada A100-DGX-80GB.
Maklumat lanjut
halaman web ROCm: AMD ROCm™ Open Software Platform |. AMD
Portal Maklumat ROCm: Dokumentasi AMD - Portal
AMD Instinct Accelerators: AMD Instinct™ Accelerators
Hab Infinity AMD: Hab AMD Infinity | Liu ialah Jurutera Pembangunan Perisian PMTS di AMD Jing Zhang ialah Jurutera Pembangunan Perisian SMTS di AMD Penyiaran mereka adalah pendapat mereka sendiri dan mungkin tidak mewakili kedudukan, strategi atau pendapat AMD , AMD tidak bertanggungjawab ke atas kandungan tapak terpaut tersebut dan tiada pengendorsan yang tersirat 2.CK untuk CPU sedang dalam fasa pembangunan awal. 3.C++ API buat masa ini, API Python sedang dalam perancangan. 4.Contoh CK "API Pelanggan" untuk GEMM + Tambah + Tambah + Pengendali gabungan FastGeLU. https://github.com/ROCmSoftwarePlatform/composable_kernel/blob/685860c2a9483c9e909d2f8bfb95056672491...
8.MI200-71: Ujian Dijalankan oleh AMD MLSE 10.23.22 menggunakan AITemplate https://github.com/ROCmSoftwarePlatform/AITemplate, commit f940d9b) + Composable Kernel https://github.com/ROCmSoftwarePlatform/composable_kernel, commit 40942b9) dengan ROCm™5.3 berjalan pada pelayan 2x7 AMD 1EPYC6-Core3EEPYC 4x AMD Instinct MI250 OAM (128 GB HBM2e) GPU 560W dengan teknologi AMD Infinity Fabric™ lwn. TensorRT v8.5.0.12 dan FasterTransformer (v5.1.1 pembetulan pepijat) dengan CUDA® 11.8 berjalan pada pelayan 2x AMD EPYC 7742 Processor 64 dengan 4x Nvidia A100-PCIe-40GB (250W) GPU dan TensorRT v8.5.0.12 dan FasterTransformer (v5.1.1 pembetulan pepijat) dengan CUDA® 11.8 berjalan pada pelayan 2xAMD EPYC 7742 64-Core Processor dengan 8x4 NVIDIA A1000GB (SXM NVIDIA A1000GB ) GPU. Pengeluar pelayan mungkin berbeza konfigurasi, menghasilkan hasil yang berbeza. Prestasi mungkin berbeza-beza berdasarkan faktor termasuk penggunaan pemacu dan pengoptimuman terkini.
9.https://github.com/ROCmSoftwarePlatform/AITemplate/tree/f940d9b7ac8b976fba127e2c269>
10.https://github.com/ROCmSoftwarePlatform/composable_kernel/tree/40942b909801dd721769834fc61ad201b5795...
Repositori 11.TensorRT GitHub. https://github.com/NVIDIA/TensorRT12.FlashAttention: Perhatian Tepat Cepat dan Cekap Memori dengan Kesedaran IO . https://arxiv.org/abs/2205.14135
13.Repositori GitHub FasterTransformer. https://github.com/NVIDIA/FasterTransformer
14.Menjadikan resapan stabil 25% lebih pantas menggunakan TensorRT. https://www.photoroom.com/tech/stable-diffusion-25-percent-faster-and-save-seconds/
15 .Sepanjang masa mereka dalam AMD
Atas ialah kandungan terperinci Tingkatkan prestasi AI hujung ke hujung melalui gabungan operator tersuai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anotasi teks ialah kerja label atau teg yang sepadan dengan kandungan tertentu dalam teks. Tujuan utamanya adalah untuk memberikan maklumat tambahan kepada teks untuk analisis dan pemprosesan yang lebih mendalam, terutamanya dalam bidang kecerdasan buatan. Anotasi teks adalah penting untuk tugas pembelajaran mesin yang diawasi dalam aplikasi kecerdasan buatan. Ia digunakan untuk melatih model AI untuk membantu memahami maklumat teks bahasa semula jadi dengan lebih tepat dan meningkatkan prestasi tugasan seperti klasifikasi teks, analisis sentimen dan terjemahan bahasa. Melalui anotasi teks, kami boleh mengajar model AI untuk mengenali entiti dalam teks, memahami konteks dan membuat ramalan yang tepat apabila data baharu yang serupa muncul. Artikel ini terutamanya mengesyorkan beberapa alat anotasi teks sumber terbuka yang lebih baik. 1.LabelStudiohttps://github.com/Hu

Anotasi imej ialah proses mengaitkan label atau maklumat deskriptif dengan imej untuk memberi makna dan penjelasan yang lebih mendalam kepada kandungan imej. Proses ini penting untuk pembelajaran mesin, yang membantu melatih model penglihatan untuk mengenal pasti elemen individu dalam imej dengan lebih tepat. Dengan menambahkan anotasi pada imej, komputer boleh memahami semantik dan konteks di sebalik imej, dengan itu meningkatkan keupayaan untuk memahami dan menganalisis kandungan imej. Anotasi imej mempunyai pelbagai aplikasi, meliputi banyak bidang, seperti penglihatan komputer, pemprosesan bahasa semula jadi dan model penglihatan graf Ia mempunyai pelbagai aplikasi, seperti membantu kenderaan dalam mengenal pasti halangan di jalan raya, dan membantu dalam proses. pengesanan dan diagnosis penyakit melalui pengecaman imej perubatan. Artikel ini terutamanya mengesyorkan beberapa alat anotasi imej sumber terbuka dan percuma yang lebih baik. 1.Makesen

Rakan yang mengetahui sesuatu tentang komputer mesti tahu bahawa GPU telah berkongsi memori, dan ramai rakan bimbang bahawa memori yang dikongsi akan mengurangkan bilangan memori dan menjejaskan komputer, jadi mereka ingin mematikannya. Berikut ialah cara untuk mematikannya satu pandangan. Matikan memori kongsi win10gpu: Nota: Memori kongsi GPU tidak boleh dimatikan, tetapi nilainya boleh ditetapkan kepada nilai minimum. 1. Tekan DEL untuk memasuki BIOS semasa boot Sesetengah papan induk perlu menekan F2/F9/F12 untuk masuk Terdapat banyak tab di bahagian atas antara muka BIOS, termasuk "Main, Advanced" dan tetapan lain "pilihan. Cari pilihan tetapan SouthBridge dalam antara muka di bawah dan klik Enter untuk masuk.

Adakah perlu untuk mendayakan GPU dipercepatkan perkakasan? Dengan pembangunan dan kemajuan teknologi yang berterusan, GPU (Unit Pemprosesan Grafik), sebagai komponen teras pemprosesan grafik komputer, memainkan peranan penting. Walau bagaimanapun, sesetengah pengguna mungkin mempunyai soalan tentang sama ada pecutan perkakasan perlu dihidupkan. Artikel ini akan membincangkan keperluan pecutan perkakasan untuk GPU dan kesan menghidupkan pecutan perkakasan pada prestasi komputer dan pengalaman pengguna. Pertama, kita perlu memahami cara GPU dipercepatkan perkakasan berfungsi. GPU adalah khusus

Menurut berita dari laman web ini pada 2 Januari, menurut TechPowerUp, AMD akan melancarkan kad grafik notebook berdasarkan Navi32 GPU Model tertentu mungkin RX7700M dan RX7800M. Pada masa ini, AMD telah melancarkan pelbagai GPU komputer riba siri RX7000, termasuk RX7900M (72CU) dan siri RX7600M/7600MXT (28/32CU) arus perdana dan siri RX7600S/7700S (28/32CU). Navi32GPU mempunyai 60CU AMD boleh menjadikannya RX7700M dan RX7800M, atau ia mungkin menghasilkan model RX7900S berkuasa rendah. AMD dijangka akan

Salah satu ciri menonjol Beelink GTi 14 yang dilancarkan baru-baru ini ialah PC mini mempunyai slot PCIe x8 tersembunyi di bawahnya. Pada pelancaran, syarikat itu berkata bahawa ini akan memudahkan untuk menyambungkan kad grafik luaran ke sistem. Beelink mempunyai n

AMD menunaikan janji awalnya pada 24 Mac untuk melancarkan FSR 3.1 pada Q2 tahun ini. Apa yang benar-benar membezakan keluaran 3.1 ialah penyahgandingan bahagian penjanaan bingkai daripada bahagian peningkatan. Ini membolehkan pemilik GPU Nvidia dan Intel menggunakan FSR 3.

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web
