Новото ниво на абстракция обещава да опрости живота, но SIMT все още съществува и изборът на подход зависи от вашите задачи.
NVIDIA обяви най-голямата актуализация на платформата CUDA от въвеждането ѝ през 2006 г. насам. С CUDA 13.1 компанията пускаCUDA Tile – нов подход към програмирането на графични процесори, базиран на модела на блоковете или плочките. Основното в това нововъведение е, че разработчикът описва алгоритмите на по-високо ниво и не е обвързан с детайлите на специализиран хардуер като тензорни ядра.
Класическата CUDA разкрива модела SIMT с една инструкция и множество нишки. Програмистът изрично управлява блоковете и нишките, прецизно настройва разположението на данните и синхронизацията, което дава максимална гъвкавост, но изисква много опит. Писането на код, който работи добре на различни поколения графични процесори, често е трудно, дори с библиотеки на ниво NVIDIA CUDA-X или CUTLASS. CUDA Tile предлага по-високо ниво на абстракция от SIMT.
Съвременните изчислителни задачи, особено в областта на изкуствения интелект, разчитат в голяма степен на тензори. NVIDIA изгражда специални хардуерни блокове за тези тензори – NVIDIA Tensor Cores и NVIDIA Tensor Memory Accelerators. Тези механизми вече са се превърнали в стандартна част от новите архитектури на графичните процесори. Колкото по-сложен става хардуерът, толкова повече софтуерни решения са необходими, за да се подпомогне използването на неговите възможности. CUDA Tile скрива подробностите за това как работят тензорните ядра и свързаните с тях софтуерни модели, така че кодът, написан с помощта на CUDA Tile, трябва да бъде съвместим както с настоящите, така и с бъдещите архитектури.

При блоковото, tile ориентирано програмиране разработчикът мисли в термините на плочките (tile) с данни, а не на отделните елементи на масива. Той описва как да разбие данните на такива фрагменти и какви операции да изпълнява върху всеки фрагмент. За това как тези операции ще бъдат декомпозирани в нишки, как ще се използват нивата на паметта и тензорните ядра, се грижат компилаторът и средата за изпълнение. По същество това напомня на подхода в Python с библиотеки като NumPy, където се работи с матрици и масиви на ниво операции от високо ниво, а всички детайли от ниско ниво остават скрити под капака.
В основата на CUDA Tile е междинното представяне CUDA Tile IR, което въвежда набор от виртуални инструкции заtile операциите.. Докато PTX осигурява преносимост за SIMT програмите, CUDA Tile IR разширява платформата CUDA с вградена поддръжка на tile програми. Разработчикът се фокусира върху разделянето на паралелната задача на плочки и блокове от плочки, докато CUDA Tile IR ги съпоставя с нишки, йерархии на паметта и тензорни ядра. По-високото ниво на абстракция позволява върху Tile IR да се изграждат нови компилатори, рамки и обектно-ориентирани езици за хардуера на NVIDIA, подобно на PTX, който служи за основа на SIMT пътя.

Не е необходимо да избирате между SIMT и tile подхода веднъж завинаги. Tile програмирането на графичния процесор допълва съществуващия модел. Когато е необходим пълен контрол върху нишките и ръчна оптимизация, разработчиците продължават да пишат познатите SIMT ядра. Когато трябва да се използват тензорни ядра и блокови операции, могат да се включат ядра за плочки.
Повечето програмисти обаче няма да работят директно с CUDA Tile IR. За тях NVIDIA предлага инструменти за изпълнение на ниво NVIDIA cuTile Python за Python, които използват CUDA Tile IR като back-end. Отделна публикация в блога и примери за код показват как да се работи с тях. Но разработчиците на собствени компилатори, библиотеки и DSL ще взаимодействат конкретно с Tile IR: документацията и спецификацията описват абстракциите, синтаксиса и семантиката на това междинно представяне. Инструментите, които днес генерират PTX, ще могат да бъдат адаптирани така, че CUDA Tile IR да бъде добавена като цел.
Появата на CUDA Tile като част от CUDA 13.1 би трябвало да улесни разработването на производителен код за графични процесори за изкуствен интелект и други ресурсоемки задачи. Разработчиците ще могат да разчитат в по-голяма степен на описанието на алгоритмите на високо ниво, без да изоставят познатия SIMT модел, когато е необходимо прецизно управление на ниско ниво.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!