🚀💳 Trustee Plus - більше ніж криптогаманець з європейською платіжною карткою. Спробуй 👉

Дослідник із МТІ створили нову мову програмування Exo 2 для високопродуктивних обчислень із набагато меншим кодом

Дослідники з Лабораторії комп’ютерних наук та штучного інтелекту Массачусетського технологічного інституту створили нову мову програмування під назвою Exo 2.

Залишити коментар
Дослідник із МТІ створили нову мову програмування Exo 2 для високопродуктивних обчислень із набагато меншим кодом

Дослідники з Лабораторії комп’ютерних наук та штучного інтелекту Массачусетського технологічного інституту створили нову мову програмування під назвою Exo 2.

Exo 2 належить до нової категорії мов програмування, яку професор МТІ Джонатан Раган-Келлі називає «мовами, що плануються користувачем» (user-schedulable languages, USLs). Замість того, щоб сподіватися, що непрозорий компілятор автоматично згенерує найшвидший код, USL ставлять програмістів за кермо, дозволяючи їм писати «розклади», які явно контролюють те, як компілятор генерує код. Це дозволяє інженерам продуктивності перетворювати прості програми, які визначають, що вони хочуть обчислити, на складні програми, які роблять те ж саме, що і початкова специфікація, але набагато, набагато швидше, пише Tech Xplore.

Одним з обмежень існуючих USL (таких як оригінальна Exo) є їх відносно фіксований набір операцій планування, що ускладнює повторне використання коду планування у різних «ядрах» (окремих компонентах високопродуктивної бібліотеки). Exo 2 навпаки дозволяє користувачам визначати нові операції планування поза компілятором, що полегшує створення багаторазових бібліотек планування.

Джерело: Tech Xplore

За словами дослідників, Exo 2 може скоротити загальний код розкладу в 100 разів і забезпечити продуктивність, що конкурує з найсучаснішими реалізаціями на багатьох різних платформах, включаючи базові підпрограми лінійної алгебри (BLAS), які забезпечують роботу багатьох програм машинного навчання. Це робить його привабливим варіантом для інженерів HPC, які зосереджені на оптимізації ядер для різних операцій, типів даних і цільових архітектур.

«Це висхідний підхід до автоматизації, а не пошук за допомогою ML/AI у високопродуктивному коді, — каже дослідник Юка Ікараші. «Це означає, що інженери продуктивності та розробники апаратного забезпечення можуть написати власну бібліотеку планування, яка є набором методів оптимізації для їхнього обладнання для досягнення максимальної продуктивності».

Однією з головних переваг Exo 2 є те, що вона зменшує кількість зусиль, необхідних для кодування в будь-який момент часу, завдяки повторному використанню коду планування для різних програм і апаратних цілей.

Дослідники реалізували бібліотеку планування з приблизно 2000 рядків коду в Exo 2, яка інкапсулює багаторазові оптимізації, специфічні для лінійної алгебри та конкретних цілей (апаратні прискорювачі AVX512, AVX2, Neon та Gemmini). Ця бібліотека об’єднує зусилля з планування у понад 80 високопродуктивних ядрах, кожне з яких містить до десятка рядків коду, забезпечуючи продуктивність, порівнянну з MKL, OpenBLAS, BLIS та Halide, або навіть кращу за них.

Exo 2 включає новий механізм під назвою Cursors, який забезпечує те, що дослідники називають «стабільним посиланням» для вказівки на об’єктний код протягом усього процесу планування. Ікараші каже, що стабільне посилання є важливим для користувачів для інкапсуляції розкладів у бібліотечній функції, оскільки воно робить код планування незалежним від перетворень об’єктного коду.

«Ми вважаємо, що USL повинні бути розроблені так, щоб їх можна було розширювати, а не мати фіксований набір операцій, — каже Ікараші. «Таким чином, мова може розвиватися і підтримувати великі проєкти завдяки впровадженню бібліотек, які відповідають різноманітним вимогам оптимізації та сферам застосування».

Конструкція Exo 2 дає змогу інженерам продуктивності зосередитися на високорівневих стратегіях оптимізації, гарантуючи при цьому, що базовий об'єктний код залишається функціонально еквівалентним завдяки використанню безпечних примітивів. У майбутньому команда сподівається розширити підтримку Exo 2 для різних типів апаратних прискорювачів, таких як графічні процесори. Кілька поточних проєктів спрямовані на покращення самого аналізу компілятора з точки зору коректності, часу компіляції та виразності.

TypeScript став найпопулярнішою мовою серед українських IT-фахівців
TypeScript став найпопулярнішою мовою серед українських IT-фахівців
По темi
TypeScript став найпопулярнішою мовою серед українських IT-фахівців
Українські розробники переважно використовують дві мови програмування. Ось найпопулярніші поєднання
Українські розробники переважно використовують дві мови програмування. Ось найпопулярніші поєднання
По темi
Українські розробники переважно використовують дві мови програмування. Ось найпопулярніші поєднання
Львівський розробник створив українську мову програмування та назвав її «Мавка». Її вже можна використовувати для написання ботів і не тільки
Львівський розробник створив українську мову програмування та назвав її «Мавка». Її вже можна використовувати для написання ботів і не тільки
По темi
Львівський розробник створив українську мову програмування та назвав її «Мавка». Її вже можна використовувати для написання ботів і не тільки
Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram
Підключай Megogo зі знижками за акційними тарифами.

від 99 гривень на місяць

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.