#news
"Многие аналитики не раз подчёркивали, что до сих пор от так называемого бума искусственного интеллекта с точки зрения капитализации выигрывала преимущественно Nvidia, тогда как выпускающая по её заказу чипы для ускорителей вычислений TSMC до сих пор оставалась в тени. На днях, однако, капитализация TSMC преодолела планку в $1 трлн."
https://3dnews.ru/1107070/catl-rasschitivaet-chto-eyo-akkumulyatori-pozvolyat-k-2027-godu-sozdat-samolyoti-preodolevayushchie-bez-podzaryadki-do-3000-km
"Многие аналитики не раз подчёркивали, что до сих пор от так называемого бума искусственного интеллекта с точки зрения капитализации выигрывала преимущественно Nvidia, тогда как выпускающая по её заказу чипы для ускорителей вычислений TSMC до сих пор оставалась в тени. На днях, однако, капитализация TSMC преодолела планку в $1 трлн."
https://3dnews.ru/1107070/catl-rasschitivaet-chto-eyo-akkumulyatori-pozvolyat-k-2027-godu-sozdat-samolyoti-preodolevayushchie-bez-podzaryadki-do-3000-km
3DNews - Daily Digital Digest
Капитализация TSMC превысила триллион долларов США
Многие аналитики не раз подчёркивали, что до сих пор от так называемого бума искусственного интеллекта с точки зрения капитализации выигрывала преимущественно Nvidia, тогда как выпускающая по её заказу чипы для ускорителей вычислений TSMC до сих пор оставалась…
#opticloud #mlperf #tabularml
Немного новостей по грядущей утилитке tabular ml benchmark.
Закончил написание сборщиков информации о системе, CPU, GPU для Windows и Linux. MacOS пока не поддерживается.
Собирается очень много информации: все флаги способностей центрального процессора (спасибо cpuinfo), детальные cuda capabilities каждого GPU (спасибо numba.cuda).
Еще больше детализированной информации (RAM, Board, Bios, Cache, OS) собирается через os-специфичные способы доступа: wmi для Windows, dmidecode для Linux.
Завершил тестирование мониторинга загрузки железа. Эта штука запускается в отдельном потоке, ждёт 1 секунду и начинает каждую секунду замерять загрузку процессора, памяти, и выбранных GPU.
По прекращении теста данные усредняются. Пример выдачи (без реальной нагрузки):
Average hardware Utilization: {'cpu_utilizaton_percent': 2.725, 'cpu_clocks_mhz': 2601.0, 'own_ram_used_gb': 0.164, 'total_ram_used_gb': 17.538, 'total_ram_free_gb': 110.409, 'gpu_ram_free_gb': 7.61, 'gpu_ram_used_gb': 0.231, 'gpu_clocks_mhz': 82.25, 'gpu_utilizaton_percent': 12.75, 'gpu_power_draw_watt': 7.83, 'gpu_temp_celsius': 39.0}
Думаю об эффективном хранении результатов тестов. Пока идея такая: юзер запускает скрипт, скрипт фиксирует железо и передаёт полную опись в облако. Железо попадает в табличку user_sessions, обратно отдаётся session_uuid. Скрипт начинает прогонять различные тесты, каждые N секунд сбрасывая в облако накопленные результаты со своим session_uuid. Тем самым обеспечивается компактность таблицы результатов (и хотя бы частичная сохранность данных в случае какого-то железного крэша).
Как планирую хранить инфу о железе: описание каждого CPU/GPU имеет сотни полей. Думаю при получении новой записи сортировать словарь и считать хэш от его текстового представления (удалив переменные поля типа name). Если такого хэша в таблице hw_info ещё нет - добавлять запись. В таблице же user_sessions хранить массивы hw_hashes. Помимо очевидной экономии места, это позволит распознавать процессоры, для которых не указана модель (в контейнерах и инженерных образцах и не такое встречается).
По поводу архитектуры - возможно, добавлю еще слой SQS, куда будут быстро складироваться результаты тестов (а потом уже пакетно забираться в базу).
Перехожу к обновлению ассортимента ML-тестов. Решил добавлять все 3 градиентных бустинга в CPU и GPU режиме. lightgbm в GPU режиме работает через opencl, в cuda-режиме мне его скомпилировать не удалось.
XGBoost хочу ещё попробовать в Dask-версии.
Возможно, еще добавлю что-то из Rapids/cuml - лес и опорные вектора?
Ах да, и будет pytorch-lightning.
Немного новостей по грядущей утилитке tabular ml benchmark.
Закончил написание сборщиков информации о системе, CPU, GPU для Windows и Linux. MacOS пока не поддерживается.
Собирается очень много информации: все флаги способностей центрального процессора (спасибо cpuinfo), детальные cuda capabilities каждого GPU (спасибо numba.cuda).
Еще больше детализированной информации (RAM, Board, Bios, Cache, OS) собирается через os-специфичные способы доступа: wmi для Windows, dmidecode для Linux.
Завершил тестирование мониторинга загрузки железа. Эта штука запускается в отдельном потоке, ждёт 1 секунду и начинает каждую секунду замерять загрузку процессора, памяти, и выбранных GPU.
По прекращении теста данные усредняются. Пример выдачи (без реальной нагрузки):
Average hardware Utilization: {'cpu_utilizaton_percent': 2.725, 'cpu_clocks_mhz': 2601.0, 'own_ram_used_gb': 0.164, 'total_ram_used_gb': 17.538, 'total_ram_free_gb': 110.409, 'gpu_ram_free_gb': 7.61, 'gpu_ram_used_gb': 0.231, 'gpu_clocks_mhz': 82.25, 'gpu_utilizaton_percent': 12.75, 'gpu_power_draw_watt': 7.83, 'gpu_temp_celsius': 39.0}
Думаю об эффективном хранении результатов тестов. Пока идея такая: юзер запускает скрипт, скрипт фиксирует железо и передаёт полную опись в облако. Железо попадает в табличку user_sessions, обратно отдаётся session_uuid. Скрипт начинает прогонять различные тесты, каждые N секунд сбрасывая в облако накопленные результаты со своим session_uuid. Тем самым обеспечивается компактность таблицы результатов (и хотя бы частичная сохранность данных в случае какого-то железного крэша).
Как планирую хранить инфу о железе: описание каждого CPU/GPU имеет сотни полей. Думаю при получении новой записи сортировать словарь и считать хэш от его текстового представления (удалив переменные поля типа name). Если такого хэша в таблице hw_info ещё нет - добавлять запись. В таблице же user_sessions хранить массивы hw_hashes. Помимо очевидной экономии места, это позволит распознавать процессоры, для которых не указана модель (в контейнерах и инженерных образцах и не такое встречается).
По поводу архитектуры - возможно, добавлю еще слой SQS, куда будут быстро складироваться результаты тестов (а потом уже пакетно забираться в базу).
Перехожу к обновлению ассортимента ML-тестов. Решил добавлять все 3 градиентных бустинга в CPU и GPU режиме. lightgbm в GPU режиме работает через opencl, в cuda-режиме мне его скомпилировать не удалось.
XGBoost хочу ещё попробовать в Dask-версии.
Возможно, еще добавлю что-то из Rapids/cuml - лес и опорные вектора?
Ах да, и будет pytorch-lightning.
👍1
#featureselection
Классная идея применения коэффициентов Шэпли для отбора признаков!
Задача FS вообще NP-сложная и сводится к выбору оптимального значения бинарного вектора длины n_features (n_features это количество признаков-кандидатов в исходной выборке). Строго говоря, для её точного решения нужно оценить OOS-метрики моделей, обученных на всех возможных сочетаниях признаков от 1 до n_features (2^n_features комбинаций).
Автор же показывает, как, используя свойство аддитивности индивидуальных shap values признаков, можно заменить дорогое обучение модели и выдачу прогноза на комбинации признаков на... просто суммирование shap values этих признаков в большой модели (обученной один раз на всех признаках).
Понятно, что это будет лишь аппроксимацией прогнозов реальной модели, честно (и долго) обученной именно на нужной комбинации признаков, но автор на множестве датасетов оценил точность этой аппроксимации, и её ранжирующие свойства оказались высоки.
PS. Тут надо провести дописследование. Как бы не вытащить себя самих за волосы из болота, как известный барон )
А вообще, конечно, сразу приходят в голову возможные улучшения для этого подхода:
1) обучать вместо одной N больших моделей (с разными HPT и вообще разными алгоритмами
2) обучать вместо одной большой модели на всех признаках M моделей на случайной части 1/M от всех признаков. Потом при оценке комбинаций, полностью попадающих в бакет i=1..M, брать не общую модель, а более конкретную i (ну или взвешенное среднее).
3) комбинация 1 и 2
4) а точно ли не нужно никакое масштабирование частичных сумм значений Шэпли?
Если эта идея рабочая, она позволит расширить область применения полного перебора (а это самый точный метод FS) с 5 (32 честные комбинации) до примерно 40 факторов (1.1 трлн аппроксимированных комбинаций).
Ну и, практически говоря, это поможет и в частичном переборе. Например, получили мы какой-то перспективный список предикторов - от эксперта, RFECV, или как-то ещё. Ну и берём 20-30-40 лучших признаков из списка, насколько потянет железо, и применяем полный аппроксимированный перебор уже к этому сокращённому списку. Профит? Профит.
Посоветовался с чат гпт, после нескольких пинков она даже сама распознала, что
Using SHAP values to approximate the predictions of models trained on specific subsets of features is an innovative approach. The idea is to use the contributions of individual features (as captured by SHAP values) to estimate the predictions of a model that would have been trained on a subset of those features.
Предложила использовать среднее сумм shap values предикторов-кандидатов для коррекции base value, и Interaction-aware SHAP Values.
Через год что, эти чёртовы языковые модели нас полностью превзойдут уже и в научной креативности? )
https://towardsdatascience.com/approximate-predictions-make-feature-selection-radically-faster-0f9664877687
Классная идея применения коэффициентов Шэпли для отбора признаков!
Задача FS вообще NP-сложная и сводится к выбору оптимального значения бинарного вектора длины n_features (n_features это количество признаков-кандидатов в исходной выборке). Строго говоря, для её точного решения нужно оценить OOS-метрики моделей, обученных на всех возможных сочетаниях признаков от 1 до n_features (2^n_features комбинаций).
Автор же показывает, как, используя свойство аддитивности индивидуальных shap values признаков, можно заменить дорогое обучение модели и выдачу прогноза на комбинации признаков на... просто суммирование shap values этих признаков в большой модели (обученной один раз на всех признаках).
Понятно, что это будет лишь аппроксимацией прогнозов реальной модели, честно (и долго) обученной именно на нужной комбинации признаков, но автор на множестве датасетов оценил точность этой аппроксимации, и её ранжирующие свойства оказались высоки.
PS. Тут надо провести дописследование. Как бы не вытащить себя самих за волосы из болота, как известный барон )
А вообще, конечно, сразу приходят в голову возможные улучшения для этого подхода:
1) обучать вместо одной N больших моделей (с разными HPT и вообще разными алгоритмами
2) обучать вместо одной большой модели на всех признаках M моделей на случайной части 1/M от всех признаков. Потом при оценке комбинаций, полностью попадающих в бакет i=1..M, брать не общую модель, а более конкретную i (ну или взвешенное среднее).
3) комбинация 1 и 2
4) а точно ли не нужно никакое масштабирование частичных сумм значений Шэпли?
Если эта идея рабочая, она позволит расширить область применения полного перебора (а это самый точный метод FS) с 5 (32 честные комбинации) до примерно 40 факторов (1.1 трлн аппроксимированных комбинаций).
Ну и, практически говоря, это поможет и в частичном переборе. Например, получили мы какой-то перспективный список предикторов - от эксперта, RFECV, или как-то ещё. Ну и берём 20-30-40 лучших признаков из списка, насколько потянет железо, и применяем полный аппроксимированный перебор уже к этому сокращённому списку. Профит? Профит.
Посоветовался с чат гпт, после нескольких пинков она даже сама распознала, что
Using SHAP values to approximate the predictions of models trained on specific subsets of features is an innovative approach. The idea is to use the contributions of individual features (as captured by SHAP values) to estimate the predictions of a model that would have been trained on a subset of those features.
Предложила использовать среднее сумм shap values предикторов-кандидатов для коррекции base value, и Interaction-aware SHAP Values.
Через год что, эти чёртовы языковые модели нас полностью превзойдут уже и в научной креативности? )
https://towardsdatascience.com/approximate-predictions-make-feature-selection-radically-faster-0f9664877687
Medium
“Approximate-Predictions” Make Feature Selection Radically Faster
Feature selection is so slow because it requires the creation of many models. Find out how to make it blazingly faster thanks to…
🔥2
#godmother
"Известный специалист по компьютерным наукам Фэй-Фэй Ли (Fei-Fei Li), которую называют «крёстной матерью искусственного интеллекта», основала стартап World Labs, который всего за четыре месяца своего существования достиг оценки более миллиарда долларов.
Фэй-Фэй Ли известна своим вкладом в компьютерное зрение — область ИИ, посвящённую помощи машинам в интерпретации и понимании визуальной информации. Она возглавляла разработку ImageNet — обширной визуальной базы данных, используемой для исследований в области распознавания визуальных объектов. С 2017 по 2018 год Ли руководила отделом ИИ в Google Cloud, а в настоящее время консультирует рабочую группу Белого дома по ИИ."
Чего? Кто её называет «крёстной матерью искусственного интеллекта»? Впервые слышу это ФИО. А вы?
https://3dnews.ru/1108120/noviy-startap-kryostnoy-materi-ii-otsenili-v-1-milliard-dollarov
"Известный специалист по компьютерным наукам Фэй-Фэй Ли (Fei-Fei Li), которую называют «крёстной матерью искусственного интеллекта», основала стартап World Labs, который всего за четыре месяца своего существования достиг оценки более миллиарда долларов.
Фэй-Фэй Ли известна своим вкладом в компьютерное зрение — область ИИ, посвящённую помощи машинам в интерпретации и понимании визуальной информации. Она возглавляла разработку ImageNet — обширной визуальной базы данных, используемой для исследований в области распознавания визуальных объектов. С 2017 по 2018 год Ли руководила отделом ИИ в Google Cloud, а в настоящее время консультирует рабочую группу Белого дома по ИИ."
Чего? Кто её называет «крёстной матерью искусственного интеллекта»? Впервые слышу это ФИО. А вы?
https://3dnews.ru/1108120/noviy-startap-kryostnoy-materi-ii-otsenili-v-1-milliard-dollarov
3DNews - Daily Digital Digest
Новый стартап «крёстной матери ИИ» оценили в 1 миллиард долларов
Известный специалист по компьютерным наукам Фэй-Фэй Ли (Fei-Fei Li), которую называют «крёстной матерью искусственного интеллекта», основала стартап World Labs, который всего за четыре месяца своего существования достиг оценки более миллиарда долларов..
💯1
#opticloud #mlperf #tabularml
Новости по проекту. Немного затормозил с оптимизированным сохранением результатов инвентаризации системы в базу, но в итоге всё работает как и планировалось - данные быстро дедуплицируются и эффективно хранятся, используется кэш "железной" детализации.
Улучшил парсинг dmidecode и lscpu. Добавил сохранение battery_info, power_plan, large_pages_support (всё кросс-платформенно).
Начал крутить тесты, и тут вылезли интересные детали. Как меня и предупреждали, тайминги обучения модели (даже относительные, например, катбуст CPU vs катбуст GPU) оказались сильно зависимы не только от типа задачи (к примеру, регрессия vs мультирегрессия), но и от размера датасета (разница от 2 до 5 раз).
(Кстати, пришлось некоторые гиперпараметры жёстко прописать, типа border_count= 128,learning_rate=0.1 для катбуста, если этого не сделать, по умолчанию в CPU-режиме border_count будет назначен вдвое выше, и будет казаться, что CPU-версия еще медленнее, чем она есть. а learning_rate при её неуказывании вообще подбирается адаптивно и во многом случайно.)
Скорее всего, обнаружатся такие гиперпараметры, которые будут сильно сдвигать соотношения таймингов CPU vs GPU, но тут ничего не сделать, кроме как запускать тест в 3 вариантах (small, medium, big) и, возможно, в нескольких наиболее часто используемых конфигах (но каких?).
Главное, чтобы соотношения таймингов не сдвигались по железу. Попытаюсь это проверить, думаю сгенерить какую-то детерминированную россыпь гиперпараметров и по ней пройтись на нескольких разных машинах. Если соотношения (в разбивке по HP) между машинами примерно сохранятся, норм.
Новости по проекту. Немного затормозил с оптимизированным сохранением результатов инвентаризации системы в базу, но в итоге всё работает как и планировалось - данные быстро дедуплицируются и эффективно хранятся, используется кэш "железной" детализации.
Улучшил парсинг dmidecode и lscpu. Добавил сохранение battery_info, power_plan, large_pages_support (всё кросс-платформенно).
Начал крутить тесты, и тут вылезли интересные детали. Как меня и предупреждали, тайминги обучения модели (даже относительные, например, катбуст CPU vs катбуст GPU) оказались сильно зависимы не только от типа задачи (к примеру, регрессия vs мультирегрессия), но и от размера датасета (разница от 2 до 5 раз).
(Кстати, пришлось некоторые гиперпараметры жёстко прописать, типа border_count= 128,learning_rate=0.1 для катбуста, если этого не сделать, по умолчанию в CPU-режиме border_count будет назначен вдвое выше, и будет казаться, что CPU-версия еще медленнее, чем она есть. а learning_rate при её неуказывании вообще подбирается адаптивно и во многом случайно.)
Скорее всего, обнаружатся такие гиперпараметры, которые будут сильно сдвигать соотношения таймингов CPU vs GPU, но тут ничего не сделать, кроме как запускать тест в 3 вариантах (small, medium, big) и, возможно, в нескольких наиболее часто используемых конфигах (но каких?).
Главное, чтобы соотношения таймингов не сдвигались по железу. Попытаюсь это проверить, думаю сгенерить какую-то детерминированную россыпь гиперпараметров и по ней пройтись на нескольких разных машинах. Если соотношения (в разбивке по HP) между машинами примерно сохранятся, норм.
👍2
#hardware #benchmarking #dl
"Deep learning is a field with intense computational requirements, and your choice of GPU will fundamentally determine your deep learning experience. But what features are important if you want to buy a new GPU? GPU RAM, cores, tensor cores, caches? How to make a cost-efficient choice? This blog post will delve into these questions, tackle common misconceptions, give you an intuitive understanding of how to think about GPUs, and will lend you advice, which will help you to make a choice that is right for you."
Не знал про Tensor Memory Accelerator (TMA). Кстати, весьма странно, что Nvidia не даёт возможности программно запросить количество набортных Tensor Cores и RT cores (хотя десятки других параметров доступны через Cuda API). Зажрались!
https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
"Deep learning is a field with intense computational requirements, and your choice of GPU will fundamentally determine your deep learning experience. But what features are important if you want to buy a new GPU? GPU RAM, cores, tensor cores, caches? How to make a cost-efficient choice? This blog post will delve into these questions, tackle common misconceptions, give you an intuitive understanding of how to think about GPUs, and will lend you advice, which will help you to make a choice that is right for you."
Не знал про Tensor Memory Accelerator (TMA). Кстати, весьма странно, что Nvidia не даёт возможности программно запросить количество набортных Tensor Cores и RT cores (хотя десятки других параметров доступны через Cuda API). Зажрались!
https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
Tim Dettmers
The Best GPUs for Deep Learning in 2023 — An In-depth Analysis
Here, I provide an in-depth analysis of GPUs for deep learning/machine learning and explain what is the best GPU for your use-case and budget.
#cloud #aws #tuning
Оказывается, некоторые облачные машины можно затюнить под конкретную вычислительную задачу по P- и C- состояниям.
"In this example, vCPUs 21 and 28 are running at their maximum Turbo Boost frequency because the other cores have entered the C6 sleep state to save power and provide both power and thermal headroom for the working cores. vCPUs 3 and 10 (each sharing a processor core with vCPUs 21 and 28) are in the C1 state, waiting for instruction.
In the following example, all 18 cores are actively performing work, so there is no headroom for maximum Turbo Boost, but they are all running at the "all core Turbo Boost" speed of 3.2 GHz.
You can reduce the variability of processor frequency with P-states. P-states control the desired performance (in CPU frequency) from a core. Most workloads perform better in P0, which requests Turbo Boost. But you may want to tune your system for consistent performance rather than bursty performance that can happen when Turbo Boost frequencies are enabled.
Intel Advanced Vector Extensions (AVX or AVX2) workloads can perform well at lower frequencies, and AVX instructions can use more power. Running the processor at a lower frequency, by disabling Turbo Boost, can reduce the amount of power used and keep the speed more consistent. For more information about optimizing your instance configuration and workload for AVX."
https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html
Оказывается, некоторые облачные машины можно затюнить под конкретную вычислительную задачу по P- и C- состояниям.
"In this example, vCPUs 21 and 28 are running at their maximum Turbo Boost frequency because the other cores have entered the C6 sleep state to save power and provide both power and thermal headroom for the working cores. vCPUs 3 and 10 (each sharing a processor core with vCPUs 21 and 28) are in the C1 state, waiting for instruction.
In the following example, all 18 cores are actively performing work, so there is no headroom for maximum Turbo Boost, but they are all running at the "all core Turbo Boost" speed of 3.2 GHz.
You can reduce the variability of processor frequency with P-states. P-states control the desired performance (in CPU frequency) from a core. Most workloads perform better in P0, which requests Turbo Boost. But you may want to tune your system for consistent performance rather than bursty performance that can happen when Turbo Boost frequencies are enabled.
Intel Advanced Vector Extensions (AVX or AVX2) workloads can perform well at lower frequencies, and AVX instructions can use more power. Running the processor at a lower frequency, by disabling Turbo Boost, can reduce the amount of power used and keep the speed more consistent. For more information about optimizing your instance configuration and workload for AVX."
https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html
Amazon
Processor state control for your Amazon EC2 AL2 instance - Amazon Linux 2
Some EC2 instance types provide the ability for an operating system to control processor C-states and P-states.
#pytorch #benchmarking #dl
TorchBench: Benchmarking PyTorch with High API Surface Coverage
В статье рассматриваются (на базе сравнений производительности подзадач) интересные аспекты разработки моделек в pytorch, в частности, недозагрузка GPU, Nvidia vs AMD, преимущества TorchInductor и TF32, etc.
В частности, показано, что в среднем задачи RL (в их популярных реализациях) загружают GPU всего на 10%, что аттрибутируется "взаимодействию с окружением". Я как знал, что объектно-ориентированный RL-код это ужасный тормоз.
https://arxiv.org/pdf/2304.14226
TorchBench: Benchmarking PyTorch with High API Surface Coverage
В статье рассматриваются (на базе сравнений производительности подзадач) интересные аспекты разработки моделек в pytorch, в частности, недозагрузка GPU, Nvidia vs AMD, преимущества TorchInductor и TF32, etc.
В частности, показано, что в среднем задачи RL (в их популярных реализациях) загружают GPU всего на 10%, что аттрибутируется "взаимодействию с окружением". Я как знал, что объектно-ориентированный RL-код это ужасный тормоз.
https://arxiv.org/pdf/2304.14226
#shap
Что получается, если самому реализовать расчёт значений Шэпли в ML с помощью "наивного" определения (как взвешенной суммы разностей вкладов коалиций с- и без- признака). Особенно интересно сравнение с библиотекой shap по части коррелированных признаков.
https://edden-gerber.github.io/shapley-part-2/
Что получается, если самому реализовать расчёт значений Шэпли в ML с помощью "наивного" определения (как взвешенной суммы разностей вкладов коалиций с- и без- признака). Особенно интересно сравнение с библиотекой shap по части коррелированных признаков.
https://edden-gerber.github.io/shapley-part-2/
✍1
#shap
Кстати, хорошая новость. Пару лет тому я сообщал, что библиотека shap заброшена, автор забил на неё болт. Многое изменилось! У него хватило совести поручить развитие активистам, и сейчас активно релизятся новые версии. Не обошлось и без ломающих изменений, к сожалению, но так гораздо лучше, чем никак.
Работа с багрепортами осталась дрянная.
https://shap.readthedocs.io/en/latest/release_notes.html
Кстати, хорошая новость. Пару лет тому я сообщал, что библиотека shap заброшена, автор забил на неё болт. Многое изменилось! У него хватило совести поручить развитие активистам, и сейчас активно релизятся новые версии. Не обошлось и без ломающих изменений, к сожалению, но так гораздо лучше, чем никак.
Работа с багрепортами осталась дрянная.
https://shap.readthedocs.io/en/latest/release_notes.html
🔥2❤1
#directml #microsoft
Узнал, что у MS есть directml:
"DirectML is a low-level hardware abstraction layer that enables you to run machine learning workloads on any DirectX 12 compatible GPU.
If you need to optimize your machine learning performance for real-time, high-performance, low-latency, or resource-constrained scenarios, DirectML gives you the most control and flexibility. You can use DirectML to integrate machine learning directly into your existing engine or rendering pipeline, or to build your own custom machine learning frameworks and middleware on Windows.
You can also use DirectML indirectly through the ONNX Runtime, which is a cross-platform library that supports the open standard ONNX format for machine learning models. The ONNX Runtime can use DirectML as one of its execution providers, along with other backends such as CPU, CUDA, or TensorRT. This way, you can leverage the performance and compatibility of DirectML without writing any DirectML code yourself."
Есть интеграция с torch.
https://learn.microsoft.com/en-us/windows/ai/directml/dml
Узнал, что у MS есть directml:
"DirectML is a low-level hardware abstraction layer that enables you to run machine learning workloads on any DirectX 12 compatible GPU.
If you need to optimize your machine learning performance for real-time, high-performance, low-latency, or resource-constrained scenarios, DirectML gives you the most control and flexibility. You can use DirectML to integrate machine learning directly into your existing engine or rendering pipeline, or to build your own custom machine learning frameworks and middleware on Windows.
You can also use DirectML indirectly through the ONNX Runtime, which is a cross-platform library that supports the open standard ONNX format for machine learning models. The ONNX Runtime can use DirectML as one of its execution providers, along with other backends such as CPU, CUDA, or TensorRT. This way, you can leverage the performance and compatibility of DirectML without writing any DirectML code yourself."
Есть интеграция с torch.
https://learn.microsoft.com/en-us/windows/ai/directml/dml
Docs
Introduction to DirectML
Direct Machine Learning (DirectML) is a low-level API for machine learning (ML).