How To Set Up and Run Cuda Operations In PyTorch – Towards AI

How To Set Up and Run Cuda Operations In PyTorch – Towards AI

Pengarang: Muttineni Sai Rohith

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

pengantar

Munculnya pembelajaran mendalam dalam beberapa tahun terakhir menciptakan permintaan untuk sumber daya komputasi dan percepatan beban kerja. Berbagai operasi yang terlibat dalam pembelajaran mendalam, seperti perkalian matriks, penataan gambar, dan pemrosesan potongan sampel suara, dapat diparalelkan untuk kinerja yang lebih baik dan mempercepat pengembangan model pembelajaran Mesin. Oleh karena itu, banyak library pembelajaran mendalam seperti TensorFlow dan Pytorch memberi pengguna serangkaian fungsi atau API untuk memanfaatkan GPU mereka. CUDA Adalah salah satu model pemrograman dan platform komputasi yang memungkinkan kami melakukan operasi kompleks lebih cepat dengan memparalelkan tugas di seluruh GPU.

Artikel ini akan membahas apa itu CUDA dan cara menyiapkan lingkungan CUDA dan menjalankan berbagai operasi CUDA yang tersedia di Pytorch.

Foto oleh Lucas Kepner di Unsplash

Apa itu CUDA?

CUDA (Compute Unified Device Architecture) adalah model pemrograman dan platform komputasi paralel yang dikembangkan oleh Nvidia. Menggunakan CUDA, seseorang dapat memaksimalkan pemanfaatan GPU yang disediakan Nvidia, sehingga meningkatkan daya komputasi dan melakukan operasi lebih cepat dengan memparalelkan tugas. PyTorch menyediakan pustaka torch.cuda untuk menyiapkan dan menjalankan operasi CUDA.

Menggunakan Pytorch CUDA, kita dapat membuat tensor dan mengalokasikannya ke perangkat. Setelah dialokasikan, kami dapat melakukan operasi di atasnya, dan hasilnya juga ditetapkan ke perangkat.

Instalasi

Pytorch menyediakan antarmuka yang ramah pengguna di situs web resmi mereka di mana kita dapat memilih sistem operasi kita, bahasa pemrograman yang diinginkan, dan persyaratan lainnya, seperti yang ditunjukkan pada gambar di bawah ini.

Lihat tautan resmi Pytorch ini — Mulai Secara Lokal | PyTorch dan pilih persyaratan sesuai dengan spesifikasi sistem kami. Pytorch menyediakan perpustakaan CUDA untuk sistem Operasi Windows dan Linux. Untuk windows, pastikan untuk menggunakan CUDA 11.6 karena CUDA 10.2 dan ROCm tidak lagi didukung untuk windows. Untuk bahasa pemrograman Python, kita dapat memilih satu dalam paket conda, pip, dan source, sedangkan LibTorch digunakan untuk bahasa C++ dan Java.

Menjalankan operasi CUDA di PyTorch

Setelah berhasil diinstal, kita dapat menggunakan antarmuka torch.cuda untuk menjalankan operasi CUDA di Pytorch.

Untuk memastikan apakah instalasi berhasil, gunakan perintah torch.version.cuda seperti gambar di bawah ini:

# Mengimpor obor impor Pytorch # Untuk mencetak versi Cuda print(“Versi CUDA Pytorch adalah “, torch.version.cuda)

Jika instalasi berhasil, kode di atas akan menampilkan output berikut –

# Output Versi CUDA Pytorch adalah 11.6

Sebelum menggunakan CUDA, kita harus memastikan apakah CUDA didukung oleh System kita.

Gunakan perintah torch.cuda.is_available() seperti yang ditunjukkan di bawah ini –

# Mengimpor obor impor Pytorch # Untuk memeriksa apakah CUDA didukung print(“Apakah CUDA didukung oleh sistem kami:”, torch.cuda.is_available())

Perintah di atas akan mengembalikan Nilai Boolean seperti di bawah ini –

# Output Apakah CUDA didukung oleh sistem kami: Benar

Pytorch CUDA juga menyediakan fungsi berikut untuk mengetahui tentang id perangkat dan nama perangkat saat diberikan ID perangkat, seperti yang ditunjukkan di bawah ini –

# Mengimpor obor impor Pytorch # Untuk mengetahui ID perangkat CUDA dan nama perangkat Cuda_id = torch.cuda.current_device() print(“CUDA Device ID: ”, torch.cuda.current_device()) print(“Nama saat ini Perangkat CUDA: ”, torch.cuda.get_device_name(cuda_id))

Kode di atas akan menampilkan output berikut –

# Output ID Perangkat CUDA: 0 Nama Perangkat CUDA saat ini: NVIDIA GeForce FTX 1650

Kami juga dapat mengubah perangkat CUDA default dengan menentukan ID seperti yang ditunjukkan di bawah ini –

# Mengimpor obor impor Pytorch # Untuk mengubah perangkat CUDA default torch.cuda.set_device(1)

Catatan: Saat menggunakan CUDA, pastikan untuk mengembangkan kode agnostik perangkat karena beberapa sistem mungkin tidak memiliki GPU dan harus berjalan pada CPU, dan sebaliknya. Itu dapat dilakukan dengan menambahkan baris berikut ke kode kita-

perangkat = ‘cuda’ jika torch.cuda.is_available() lain ‘cpu’

Mengoperasikan Tensor dengan CUDA

Umumnya, tensor Pytorch sama dengan array NumPy. Ini adalah array n-dimensi yang digunakan untuk perhitungan numerik. Satu-satunya perbedaan antara tensor dan array NumPy adalah tensor dapat berjalan baik di CPU dan GPU.

Pytorch CUDA menyediakan fungsi berikut untuk menangani tensor –

· tensor.device — mengembalikan nama perangkat tensor. Secara default, ini adalah “CPU”.

· tensor.to(device_name) — mengembalikan turunan tensor baru pada perangkat yang disebutkan. “CPU” untuk CPU dan “cuda” untuk GPU yang mendukung CUDA.

· tensor.cpu() — untuk mentransfer tensor dari perangkat saat ini ke CPU.

Mari kita pahami penggunaan fungsi-fungsi di atas dengan membuat tensor dan melakukan beberapa operasi dasar.

Kami akan membuat sampel tensor dan melakukan operasi tensor (Squaring) pada CPU, dan kemudian kami akan mentransfer tensor ke GPU dan melakukan operasi yang sama lagi dan memahami kinerjanya.

impor obor

# Membuat contoh tensor x = torch.randint(1, 1000, (100, 100)) # Memeriksa nama perangkat: akan mengembalikan ‘CPU’ secara default print(“Nama Perangkat: ” , x.device) # Menerapkan operasi tensor res_cpu = x ** 2 # Mentransfer tensor ke GPU x = x.to(torch.device(‘cuda’)) # Memeriksa nama perangkat: akan mengembalikan ‘cuda:0’ print(“Nama Perangkat setelah mentransfer: ”, x .device) # Menerapkan operasi tensor yang sama res_gpu = x ** 2 # Mentransfer tensor dari GPU ke CPU x.cpu()

Menjalankan model Machine Learning dengan CUDA

CUDA menyediakan fungsi berikut untuk mentransfer model pembelajaran mesin ke perangkat berikut:

· model.to(device_name) — mengembalikan instance baru dari model Machine learning pada device_name yang ditentukan. “CPU” untuk CPU dan “cuda” untuk GPU yang mendukung CUDA.

Untuk mendemonstrasikan fungsi di atas, kami akan mengimpor model “Resnet-18” yang telah dilatih sebelumnya dari torchvision.models

# Mengimpor Pytorch Impor obor impor torchvision.models sebagai model # Membuat kode device-agnostic device = ‘cuda’ if torch.cuda.is_available() else ‘cpu’ # Membuat model model yang telah dilatih sebelumnya = models.resnet18(pretrained= Benar) # Mentransfer model ke model GPU berkemampuan CUDA = model.to(device)

Setelah model ditransfer, kami dapat melanjutkan alur kerja machine learning lainnya pada GPU yang mendukung CUDA.

Kesimpulan

Setelah membaca artikel ini, orang dapat memahami cara menginstal pustaka CUDA PyTorch di sistem kami, menerapkan perintah dasar CUDA PyTorch, menangani tensor dan model pembelajaran mesin dengan CUDA.

Cara Mengatur dan Menjalankan Operasi Cuda Di PyTorch awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jonathan Kelly