OpenCL di Adobe Premiere Pro: Seberapa cepat GPU dari CPU?
Halo Giktayms! Baru-baru ini menemukan dunia luar biasa dalam mempercepat pemrosesan data menggunakan kartu video menggunakan OpenCL, saya memutuskan untuk menulis sedikit materi pengantar untuk pemula yang tidak terbiasa dengan teknologi ini dalam praktiknya. Internet sering memunculkan pertanyaan “perolehan produktivitas apa yang akan saya dapatkan?”, Tetapi jawabannya abstrak atau terlalu berteori.Posting ini dimaksudkan untuk menunjukkan bagaimana penggunaan OpenCL dapat mempercepat rendering video dalam program pengeditan video. Anda tidak akan menemukan perendaman mendalam dalam teori dan matematika - ada banyak artikel teoritis rinci tentang OpenCL tentang Giktims dan Habré tanpa saya. Hanya akan ada deskripsi tugas dan hasil tes, jadi harap memperlakukan teks persis seperti panduan pengantar sederhana untuk pemula.
Mengapa itu dibutuhkan?
Kartu grafis modern adalah monster komputasi nyata, yang kekuatan penuh biasanya dihabiskan untuk permainan. Bukan orang bodoh menyadari bahwa jika programmer diberikan akses langsung ke unit komputasi chip video, maka semua kekuatan kolosal ini dapat digunakan untuk tugas-tugas lain, dan bukan hanya pemrosesan grafis 3D.NVIDIA adalah yang pertama berhasil mengimplementasikan ide ini dengan arsitektur komputasi paralel Compute Unified Device Architecture (CUDA). Menggunakan sintaks yang diperluas dari bahasa C dan kompiler khusus, pengembang dapat menggunakan chip grafis untuk tugas komputasi. AMD, pada gilirannya, memperkenalkan Stream SDK - visi kepemilikannya untuk CUDA.Hasilnya sangat fenomenal - proses yang terkait dengan pemrosesan data media, yang menyiratkan tingkat paralelisasi yang tinggi, diselesaikan beberapa kali lebih cepat daripada dalam hal perhitungan oleh prosesor pusat. Keuntungan GPU terutama diucapkan ketika rendering dalam program pemodelan 3D dan pemrosesan video.
Setahun setelah rilis CUDA, konsorsium Grup Khronos merilis kerangka kerja OpenCL. Bahkan, ia harus menyatukan kode untuk mengakses kekuatan komputasi prosesor pada berbagai arsitektur, termasuk core video. Sejak saat itu, dukungan untuk kerangka kerja baru mulai secara aktif diperkenalkan ke dalam perangkat lunak profesional.Hingga saat ini, OpenCL mendukung program Adobe, konverter media, sejumlah render 3D, CAD dan perangkat lunak untuk pemodelan matematika.
CUDA atau OpenCL yang lebih baik?
Pertanyaan yang sangat sering dan sangat menarik adalah subtitle. Kedua teknologi ini tidak seperti saudara. Seperti PhysX yang telah lama menderita, CUDA adalah teknologi tertutup yang hanya didukung oleh chip NVIDIA dan tidak semua perangkat lunak khusus. OpenCL adalah ekstrovert, kode ini terbuka untuk setiap penggemar, perangkat lunak apa pun yang mendukung komputasi GPU secara definisi berfungsi dengan OpenCL.Pemrogram NVIDIA tidak menghirup lebih - jika Anda mengambil dua kartu video bulat dalam vakum dengan kinerja yang sama, maka CUDA pada chip NVIDIA menunjukkan kinerja rata-rata 20% lebih tinggi daripada OpenCL pada chip AMD. Tetapi ada nuansa, seperti yang mereka katakan - jika CUDA NVIDIA bekerja dengan cepat dan baik, maka OpenCL pada kartu perusahaan ini sedikit lebih rendah dari kecepatan pemrosesan AMD OpenCL. Beberapa tahun yang lalu, situasinya sangat menyedihkan, tetapi seiring waktu, menggunakan driver, kesenjangan dibuat. Namun demikian, kinerja spesifik NVIDIA GeForce di OpenCL masih sedikit lebih rendah daripada AMD Radeon. Oleh karena itu, mereka yang telah membeli kartu NVIDIA untuk bekerja dengan aplikasi yang mendukung OpenCL secara eksklusif akan berada dalam posisi yang buruk - adaptor akan keluar lebih mahal, dan efisiensinya mungkin lebih rendah daripada Radeon. Permainan seperti itu tidak sebanding dengan lilin.
Besi
Saya menemukan dunia OpenCL yang luar biasa hanya musim panas ini, setelah membeli dua kartu video AMD Radeon 300 series sekaligus: SAPPHIRE NITRO R9 380 dan SAPPHIRE Tri-X R9 390X . Salah satunya direncanakan akan dikembalikan ke toko, tergantung pada hasil tes di rumah. Kartu dibeli untuk mengedit video di rumah, pilihan ke arah Radeon cukup sadar: di satu sisi, CUDA lebih cepat daripada OpenCL. Di sisi lain, ternyata, OpenCL didukung oleh perangkat lunak yang jauh lebih profesional daripada CUDA, dan kinerja kartu NVIDIA di OpenCL meninggalkan banyak hal yang diinginkan.
Dari bermacam-macam kartu SAPPHIRE yang diusulkan, saya lebih menyukainya daripada yang lain. Tidak seperti penggemar desain referensi, SAPPHIRE menggunakan kipas klasik dalam sistem pendingin, yang jauh lebih tenang daripada turbin angin referensi sentrifugal - Saya mengembangkan permusuhan yang kuat kepada mereka setelah berkenalan cepat dengan penyedot debu kartu video Radeon 4870x2.Di rumah, ketika membongkar dua kotak besar, saya merasa seperti mastodon berlumut - kartu video agak besar. SAPPHIRE R9 390X sangat besar, dengan tiga kipas dan heatsink yang melebihi ukuran papan sirkuit cetak. Pada awalnya, saya bahkan khawatir jika monster ini masuk ke dalam korps saya. Untungnya, kami masuk, tetapi satu hard drive harus dilepas dari sangkar hard drive. Catu daya kilowatt juga tidak berlebihan - R9 390X membutuhkan dua konektor daya empat pin, dan tidak setiap PSU akan menarik arus seperti itu.
Jadi, konfigurasi rumah saya, di mana tes perbandingan OpenCL dilakukan:- Prosesor: Intel Core i5-2500K, di-overclock hingga 3,7 GHz
- RAM: 12 GB DDR-1333
- Motherboard: ASUS P8Z77-V PRO
- Drive: SSD sistem A-DATA 120 GB, konten WD Black WD20EARS 2 TB HDD
- Catu Daya: Corsair 1000 W
Lembut
Jika Adobe Premiere Pro CS4 adalah beban berat di kantor, maka di rumah Anda dapat mengatur ruang kerja sesuai keinginan Anda. Saya hampir tidak pernah berpikir untuk membeli Premiere Pro jika Adobe belum meluncurkan sistem berlangganan Creative Cloud yang luar biasa. Sekarang untuk 600 rubel sebulan saya memiliki Premiere Pro CC yang legal dan terus diperbarui. Dan dia, tidak seperti kantor orang tua, secara native mendukung rendering menggunakan OpenCL dan CUDA!Jika kartu video Anda berfungsi dengan OpenCL atau CUDA, maka pada tahap membuat proyek di Premiere Pro Anda dapat memilih render. Untuk akselerasi perangkat keras, penuhilah Mercury Playback Engine GPU (OpenCL) atau (CUDA). Dalam proyek yang sudah selesai, renderer dapat diubah melalui Pengaturan Proyek dari menu File.
Seperti yang sudah saya katakan, menggunakan OpenCL Anda dapat mentransfer perhitungan pada aplikasi efek video ke kartu video. Namun, tidak semua efek pada Premiere Pro mendukung OpenCL - Anda dapat mengetahuinya dengan ada atau tidak adanya ikon seperti itu dalam daftar.
Tes
Sebagai proyek uji, saya memilih video dua menit yang terdiri dari banyak segmen dari video Full HD dengan bitrate 72 Mbps dan frame rate 24 frame per detik. Di atas semua aib ini, efek percepatan Warna Lumetri diterapkan, dimana saya melakukan koreksi warna. Outputnya seharusnya berupa film dalam format h.264, dalam resolusi 1920x1080 (yaitu, tanpa perubahan), dengan bitrate 6-7 Mbit / s, pengkodean dua jalur digunakan.Untuk mengkonfirmasi pengoperasian kartu video, saya mengambil parameter GPU-Z - melihat frekuensi inti grafis, mudah dipahami saat video dirender oleh CPU, dan saat GPU.
Pada uji coba pertama, saya mematikan efek Warna Lumetri, jadi keseluruhan render adalah mengubah bitrate video.Jalankan 1:memproyeksikan 2 menit, h.264, 6-7 mbps, tidak ada efekCPU | 3:09 |
SAPPHIRE Tri-X R9 390X | 2:33 |
SAPPHIRE NITRO R9 380 | 2:38 |
Tanpa menerapkan efek, perbedaan kecepatan rendering antara prosesor dan kartu grafis modern yang kuat sangat kecil. Saat memproses video dengan total durasi sekitar satu jam, keuntungan dari menggunakan OpenCL akan lebih terlihat, tetapi masih sangat kecil. Namun demikian, hampir selalu selama proses pengeditan, efek koreksi warna diterapkan pada video, sehingga tes ini harus dianggap "sintetis".Jalankan 2:memproyeksikan 2 menit, h.264, 6-7 mbps, efek Warna LumetriCPU | 11:33 |
SAPPHIRE Tri-X R9 390X | 2:42 |
SAPPHIRE NITRO R9 380 | 2:48 |
Hasilnya berbicara sendiri - jika kedua kartu video dengan mudah membuat video sedikit lebih lambat daripada waktu nyata, maka prosesor menghabiskan hampir enam menit untuk merender setiap menit. Dan ini hanya dengan satu efek diaktifkan! Jika sebelum tes saya berharap untuk memproses film berdurasi satu jam dengan koreksi warna untuk seluruh durasi, maka setelah hasil saya memutuskan untuk meninggalkan ide ini. Dalam pekerjaan saya, saya menerapkan koreksi warna pada segmen kecil dari video, dan rendering satu atau dua jam tidak terlalu mengganggu saya. Saya tidak punya waktu untuk kehilangan empat atau lima jam untuk keperluan tes.Dengan mengekstrapolasi hasil, kita dapat mengasumsikan bahwa prosesor akan berhasil dengan koreksi warna yang berlangsung 60 menit dalam 4,5 jam, sementara kartu video akan membutuhkan kurang dari satu jam!temuan
Berdasarkan hasil pengujian, saya meninggalkan SAPPHIRE NITRO R9 380 - harganya lebih murah daripada kartu R9 390X paling keren, tetapi di Premiere Pro kinerja kedua adapter hampir identik. Mengingat bahwa adaptor dibeli untuk melakukan pekerjaan, yang berarti menghasilkan uang menghabiskan 17 ribu rubel sama sekali tidak disayangkan. Selain itu, dalam GTA V peta terbukti bagus, tetapi topik ini adalah untuk catatan yang sama sekali berbeda.Adapun pengalaman menggunakan OpenCL, orang tidak bisa tidak mengakui - penyelamat datang ke dunia editing video: rendering berubah menjadi kesenangan. Dibandingkan dengan Intel Core i5 yang overclock, GPU dengan mudah memproses video dengan efek yang ditumpangkan di Premiere Pro. Dengan hasil tes seperti itu, tidak ada pertanyaan apakah akan menggunakan rendering oleh GPU. Satu-satunya pertanyaan adalah kartu video mana yang beradaptasi dengan ini. Sesuatu dari segmen game atas akan tepat, misalnya, AMD Radeon R9 3xx. SAPPHIRE NITRO R9 380 sepenuhnya memenuhi kebutuhan saya, tetapi adaptor kelas menengah dan bahkan entry-level juga mendukung OpenCL, yang berarti mereka akan secara signifikan mempercepat pekerjaan Anda dalam perangkat lunak profesional. Source: https://habr.com/ru/post/id383405/
All Articles