Jak używać akceleracji GPU w Pythonie? Tłumaczymy skąd pobrać narzędzia
Python jest jednym z popularniejszych języków programowania, między innymi dzięki przejrzystej składni. Programy w Pythonie mogą jednak działać szybciej dzięki zastosowaniu akceleracji GPU - CUDA bądź OpenCL. Jakie dodatkowe oprogramowanie jest potrzebne by włączyć do obliczeń układ graficzny?
Chętnych do rozpoczęcia pracy programisty wciąż nie brakuje, a i już praktykujący chętnie poszerzają swoje umiejętności. Python dzięki swojej uniwersalności jest ciekawym wyborem, a dodatkowo jego możliwości można rozszerzyć za pomocą bibliotek.
Jak sprawić by nasz program działał szybciej i/lub lepiej korzystał z zasobów sprzętowych? Można włączyć do obliczeń kartę graficzną, czyli zastosować akcelerację GPU. W wielu przypadkach (ale nie zawsze) może to przynieść wymierne korzyści i program może działać nawet kilkukrotnie szybciej.
Twoje programy w Pythonie również mogą korzystać z akceleracji GPU. Przerzucenie obliczeń z CPU na GPU nie jest jednak magicznym sposobem, który w każdym przypadku pozwoli programowi działać szybciej. Na pewno sprawdzi się to w przypadku obliczeń równoległych, kiedy wiele prostych rdzeni GPU może przeprowadzać obliczenia bardziej efektywnie od kilku zaawansowanych rdzeni CPU.
Akceleracja GPU w Pythonie
Akceleracja GPU, czyli po prostu włączenie do obliczeń karty graficznej - czy to z powodu samego odciążenia procesora, czy też przyśpieszenia działania, jest stosowana dziś praktycznie wszędzie. Najbardziej popularnym przykładem są programy do montażu i renderowania wideo, takie choćby jak DaVinci Resolve, które potrafią wykorzystać moc nie tylko samych GPU, ale i specjalizowanych enkoderów H.265 czy AV1 (pod warunkiem, że karta graficzna je posiada)
Jakiego oprogramowania potrzeba by skorzystać z akceleracji GPU podczas programowania w Pythonie?
1. Python jaki jest, każdy widzi
Oczywiście na start będzie nam potrzebny sam Python, którego można pobrać z oficjalnej strony projektu.
Python dostępny jest na platformy Windows, Linux, macOS i inne.
2. Rozszerzenie możliwości Pythona - Anaconda (Conda)
Anaconda to menedżer pakietów Pythona (Navigator) zawierający między innymi dodatkowe aplikacje i biblioteki. Warto wspomnieć, że Anaconda jest wersją pełną (ze wszystkimi dodatkami), natomiast Conda wersją "odchudzoną" (podstawową) do której możemy ręcznie doinstalowywać dodatki wedle uznania.
Anaconda dostępna jest na platformy Windows, Linux i macOS.
3a. Akceleracja GPU w Pythonie na kartach GeForce - CUDA Toolkit lub PyCUDA
Teraz pozostała nam jedynie instalacja oprogramowania, które włączy do akcji rdzenie układu graficznego. W przypadku kart GeForce można się udać na stronę NVIDIA Developer po pakiet CUDA Tooltkit, bądź skorzystać z innych rozwiązań jak PyCUDA.
CUDA Toolkit dostępny jest tylko na systemy Windows i Linux, natomiast z PyCUDA możemy również skorzystać z wersji na macOS.
3b. Akceleracja GPU w Pythonie na kartach Radeon - PyOpenCL
Jeśli jesteśmy posiadaczami karty AMD Radeon, to zamiast CUDA musimy wykorzystać OpenCL - to umożliwi nam pakiet PyOpenCL.
Po instalacji tych pakietów, możesz już śmiało sprawdzić empirycznie, czy twój program będzie działał szybciej na CPU, czy też z wykorzystaniem GPU. Efekty często mogą nas zadziwić, chociaż wydajność będzie zależeć nie tylko od samego programu, ale również od wydajności karty graficznej.
Python jest znany z dużej liczby dodatkowych bibliotek i oczywiście na akceleracji GPU się nie kończy. Można wspomnieć jeszcze choćby PyTorch, czy TensorFlow które zapewniają wsparcie dla obliczeń związanych ze sztuczną inteligencją.