У 2024 році Python офіційно став найпопулярнішою мовою програмування у світі, обійшовши JavaScript, згідно з опитуванням GitHub про відкриті проєкти. Втім, протягом багатьох років у CUDA — інструментарію NVIDIA для розроблення GPU-прискорених програм — не було повноцінної підтримки Python.
Як повідомляє The New Stack, NVIDIA оголосила про нативну підтримку Python у стеку CUDA. Розробники тепер можуть писати та запускати високорівневі обчислення на GPU без потреби у C або C++.
«Ми довго працювали над тим, щоб повноцінна підтримка прискореного Python з’явилася у стеку CUDA», — заявив архітектор CUDA Стівен Джонс під час презентації.
Програмування GPU без C++: що змінюється
Для програмістів це означає радикальні зміни. Історично CUDA вимагала знання C/C++, але тепер можна використовувати «чистий» Python зі знайомим інтерфейсом функцій і бібліотек.
«Python для CUDA не має виглядати як C. Він має виглядати як Python», — наголосив Джонс.
Що нового в Python-стеку CUDA
До цього моменту Python-розробники мали лише обмежені засоби взаємодії з CUDA. Тепер компанія реалізувала повну нативну підтримку на всіх рівнях:
1. cuPyNumeric — бібліотека, яка повністю замінює NumPy і працює на GPU після простої зміни імпорту.
2. CUDA Core — реорганізована у стилі Python версія середовища виконання CUDA з підтримкою JIT-компіляції.
3. NVMath Python — універсальна бібліотека з єдиним інтерфейсом для викликів з CPU та GPU, яка інтегрується з оптимізованим C++ кодом.
4. Інструменти профілювання й аналізу коду — нові утиліти для дебагу та оптимізації.
Вся архітектура збудована так, щоб не виходити за межі Python — без командного рядка, зовнішніх компіляторів чи додаткових залежностей.
Новий програмний рівень: CuTile
CUDA розподіляє завдання на тисячі потоків. Проте нова модель CuTile дає можливість працювати не на рівні потоків, а на рівні тайлів (tiles) — менших обчислювальних блоків. Це наближує модель до мислення Python-розробників, які працюють із масивами, а не потоками.
CuTile дає змогу легко картографувати вектори, тензори або масиви на GPU, залишаючи високу продуктивність.
«Компілятор часто робить це краще, ніж я міг би вручну, адже він глибше розуміє, як працює GPU», — пояснив Джонс.
Чому це важливо для NVIDIA та ринку
Згідно з даними The Futurum Group, кількість користувачів CUDA зросла з 2 мільйонів у 2020 році до 4 мільйонів у 2023-му, але Python-спільнота — в рази більша. Адаптація під Python дасть можливість NVIDIA охопити мільйони нових розробників, зокрема в Індії, Бразилії та інших країнах, де Python домінує в навчанні й Open source.
Підтримка Python також робить екосистему NVIDIA готовою до масштабування в нових регіонах, де зростають GPU-інфраструктури, зокрема в телекомі. NVIDIA працює і над підтримкою інших мов, зокрема Rust і Julia.
Раніше ми повідомляли, що NVIDIA припиняє підтримку CUDA для старих архітектур.
Читайте також на ProIT: у Python з’явився єдиний формат lock-файлів: що передбачає PEP 751.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!