Tiny Corp змусила відеокарту AMD працювати через USB 3 — на Mac, Windows та Linux

Опублікував Андрій Русанов

«Ви не уявляєте, який рівень інженерії був вкладений у це», — пишуть автори моду для карт AMD.

Підтримка зовнішніх відеокарт на Mac та MacBook з процесорами Apple Silicon є відомою проблемою серед ентузіастів штучного інтелекту та машинного навчання. Tiny Corp вдалося змусити відеокарту AMD працювати в Tiny Grad через USB 3 — стандарт, позбавлений жодних властивостей PCIe. Оскільки використовується libusb, ця функціональність працюватиме на Windows, Linux та macOS на процесорах Apple.

Зазвичай відеокарти підключаються через слоти PCIe або інтерфейси Thunderbolt/USB4, які мають підтримку тунелювання PCI Express. На відміну від Mac на Intel, пристрої на базі Apple Silicon не підтримують зовнішні відеокарти. Тож попри їхню ефективність порівняно з системами на базі x86, користувачі мають проблеми з роботою потужних моделей ШІ на них.

Комплект для роботи відеокарти через USB 3 включає адаптер на базі ASM2464PD. У Tiny Corp використали адаптер ADT-UT3G на цьому чипі — але «з коробки» він працює лише з інтерфейсами Thunderbolt 3, Thunderbolt 4 або USB 4. Команда, ймовірно, використала спеціальну прошивку, щоб увімкнути режим без прямого зв’язку з PCIe. Технічні деталі не розголошуються, проте, здається, контролер перетворює команди PCIe на пакети USB і навпаки.

Це рішення можна назвати хакерським, оскільки воно обходить драйвери відеокарти рівня ядра, вимагає специфічного обладнання та використовує роз’єм, який початково не призначався для цього. Щоправда, існує обмеження на швидкість передачі даних до 10 Гбіт/с, тому запуск моделей займе набагато більше часу, ніж з більш придатним для цього обладнанням.

Через використання кастомних драйверів на рівні користувача, щоб уникнути втручання в ядро, функція обмежена відеокартами AMD RDNA 3 та 4 — хоча є натяк на потенційну підтримку RDNA 2 у майбутньому. За бажанням, модифікацію зможуть спробувати усі охочі — очікується, що Tiny Corp надасть більше деталей, як тільки завершать розробку.

Джерело: Tom`s Hardware