Làm cách nào để sử dụng GPU trong python?

GPU có nhiều lõi hơn CPU và do đó, khi tính toán song song dữ liệu, GPU hoạt động tốt hơn nhiều so với CPU mặc dù GPU có tốc độ xung nhịp thấp hơn và nó thiếu một số tính năng quản lý lõi so với CPU.  

Do đó, việc chạy tập lệnh python trên GPU có thể nhanh hơn tương đối so với CPU, tuy nhiên, cần lưu ý rằng để xử lý tập dữ liệu bằng GPU, trước tiên dữ liệu sẽ được chuyển vào bộ nhớ của GPU, có thể cần thêm thời gian, vì vậy nếu dữ liệu .  

Bắt đầu.  

Hiện tại chỉ hỗ trợ GPU NVIDIA và những GPU được liệt kê trên trang này. Nếu card đồ họa của bạn có lõi CUDA thì bạn có thể tiếp tục thiết lập mọi thứ.  

Cài đặt.  

Trước tiên, hãy đảm bảo rằng trình điều khiển Nvidia được cập nhật, bạn cũng có thể cài đặt cudatoolkit một cách rõ ràng từ đây. sau đó cài đặt Anaconda thêm anaconda vào môi trường trong khi cài đặt.  
Sau khi hoàn thành tất cả các cài đặt, hãy chạy các lệnh sau trong dấu nhắc lệnh

conda install numba & conda install cudatoolkit

GHI CHÚ. Nếu Anaconda không được thêm vào môi trường thì hãy điều hướng đến cài đặt anaconda và tìm thư mục Scripts và mở dấu nhắc lệnh ở đó.  

MÃ SỐ

Chúng tôi sẽ sử dụng số. trang trí jit cho chức năng chúng tôi muốn tính toán qua GPU. Trình trang trí có một số tham số nhưng chúng tôi sẽ chỉ làm việc với tham số đích. Mục tiêu yêu cầu jit biên dịch mã cho nguồn nào ("CPU" hoặc "Cuda"). “Cuda” tương ứng với GPU. Tuy nhiên, nếu các

CPU được truyền dưới dạng đối số, sau đó jit sẽ cố gắng tối ưu hóa mã chạy nhanh hơn trên CPU và cũng cải thiện tốc độ.  

Python3




from numbaimport jit, cuda

import numpy as np

# to measure exec time

from

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
0import
without GPU: 8.985259440999926
with GPU: 1.4247172560001218
2

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
3

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
4

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
5
without GPU: 8.985259440999926
with GPU: 1.4247172560001218
6

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7
without GPU: 8.985259440999926
with GPU: 1.4247172560001218
8
without GPU: 8.985259440999926
with GPU: 1.4247172560001218
9from0 from1from2from3from4

from5from6from7from8 from9

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
3

numba1

numba2numba3from8numba5numba6

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
5 numba8

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7
without GPU: 8.985259440999926
with GPU: 1.4247172560001218
8
without GPU: 8.985259440999926
with GPU: 1.4247172560001218
9from0 from1from2from3from4

from5from6from7from8 from9

jit, cuda2 jit, cuda3from8from8jit, cuda6jit, cuda7

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7jit, cuda9from8 from3

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7import3_______24_______8 import5from8 import7

import8

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7numpy as np0_______24_______8 numpy as np2

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7numpy as np4

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7numpy as np6from2numpy as np8numpy as np9# to measure exec time0# to measure exec time1

import8

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7numpy as np0_______24_______8 numpy as np2

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7# to measure exec time8

without GPU: 8.985259440999926
with GPU: 1.4247172560001218
7numpy as np6from2from2numpy as np9# to measure exec time0from5

đầu ra. dựa trên CPU = i3 6006u, GPU = 920M.  

without GPU: 8.985259440999926
with GPU: 1.4247172560001218

Tuy nhiên, cần lưu ý rằng mảng đầu tiên được sao chép từ ram sang GPU để xử lý và nếu hàm trả về bất kỳ giá trị nào thì các giá trị được trả về sẽ được sao chép từ GPU sang CPU. Do đó, đối với các tập dữ liệu nhỏ, tốc độ của CPU tương đối nhanh hơn nhưng tốc độ có thể được cải thiện hơn nữa ngay cả đối với các tập dữ liệu nhỏ bằng cách chuyển mục tiêu là “CPU”. Cần đặc biệt cẩn thận khi chức năng được viết dưới jit cố gắng gọi bất kỳ chức năng nào khác thì chức năng đó cũng phải được tối ưu hóa với jit nếu không jit có thể tạo ra các mã thậm chí còn chậm hơn

Làm cách nào để lấy bộ nhớ GPU trong Python?

Bạn sẽ cần phải cài đặt thư viện nvidia-ml-py3 trong python (pip install nvidia-ml-py3) để cung cấp các ràng buộc cho thư viện Quản lý NVIDIA. Here is the code snippet: Thats it!

Tôi có thể sử dụng GPU trong Python không?

CUDA Python của NVIDIA cung cấp trình điều khiển và API thời gian chạy cho các bộ công cụ và thư viện hiện có để đơn giản hóa quá trình tăng tốc dựa trên GPU . Python là một trong những ngôn ngữ lập trình phổ biến nhất cho các ứng dụng khoa học, kỹ thuật, phân tích dữ liệu và học sâu.

Trình quản lý tác vụ có thể xem mức sử dụng GPU không?

Nhấn "Ctrl+Shift+Esc" để mở Trình quản lý tác vụ, sau đó phóng to trang này. Kiểm tra xem bạn có thể xem mức sử dụng GPU trong Quy trình hay không (cửa sổ có thể quá nhỏ để bạn nhìn thấy GPU). Nếu bạn không nhìn thấy nó, vui lòng nhấp chuột phải vào "CPU" và đánh dấu vào "GPU" và bạn sẽ có thể xem dữ liệu GPU .