Металловедение в Юлии

Металловедение в жизни Юлии

Little Heavy | Изображение автора

Использование возможностей графических процессоров macOS с помощью фреймворка Metal.jl.

Введение

Вот недавно мы были познакомлены с фреймворком Metal.jl, который является графическим бэкэндом для аппаратной части Apple. Это интересные новости для разработчиков на языке Julia, которым хочется использовать полный потенциал своих микросхем M-серии в macOS. В частности, ученые-данные и инженеры машинного обучения могут ускорить вычислительные процессы, используя параллельные возможности графических процессоров, что приведет к более быстрому обучению и выводу результатов. Интеграция Metal.jl в экосистему Julia является важным шагом в сторону соответствия возможностей языка с постоянно развивающимся ландшафтом научных вычислений и машинного обучения на платформах Apple.

В 2020 году Apple начала переход своей линейки Mac от процессоров на базе Intel к процессорам Apple Silicon, начиная с чипа M1. Хотя это было историческим и впечатляющим достижением от Apple, оно сопровождалось определенными критикой и проблемами. С тех пор, как я взял в использование свой компьютер Mac Studio с 32-ядерным чипом M1, я пытаюсь полностью использовать графический процессор и экспериментировать с новыми приложениями. Я должен сказать, что это было не всегда легко и весело. От проблем совместимости с архитектурой ARM до неподдерживаемых библиотек машинного обучения – иногда было сложно создать работающую среду. Это ожидаемо для любого большого перехода и изменения способа работы. Я сохраняю надежду и вижу значительные улучшения в стабильности и функциональности в целом.

В этой статье мы познакомимся с фреймворком Metal.jl, чтобы понять его возможности. Мы также продемонстрируем практический пример, используя Flux, библиотеку для машинного обучения на языке Julia, с использованием Metal-бэкэнда.

Вот краткий обзор тем, которые мы рассмотрим:

I. Настройка проекта i. Настройка среды Julia ii. Обзор зависимостей

II. Использование Metal API i. Ядерные функции ii. Бенчмаркинг iii. Профилирование

III. Работа с Flux и Metal-бэкэндом i. Обзор набора данных ii. Простая нейронная сеть iii. Оценка модели