Aspiring Data Science
318 subscribers
386 photos
10 videos
6 files
1.39K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#featureselection #diogenes #optimisation #gpu #cuda #cupy

Докладываю новости о проекте Диоген. Вчера добавил бюджет времени, переписал функции покрасивее, потестировал все ветки. С указанием допустимого времени работает просто отлично.

Сегодня ещё добавил функциональность random seed. Выяснилось, что нумба не подтягивает его из нампай "обычного" режима, надо в njit-нутой функции его ещё раз выставлять.

Отпрофилировал код на глубинах 1-2 взаимодействий признаков. Оказалось, что 80% времени кушает оценка кандидатов, и 20% времени - расчёт надёжности для лучших кандидатов. Из этих 80% основные опять же ~80% тратятся в прямой оценке MI кандидата и таргета.

Дальше они распадаются так: 20% на слияние многомерного вектора, 70% на перемешивание таргета (np.random.shuffle), 10% на сам расчёт MI из совместного распределения.

Очевидно, выгоднее всего оптимизировать шаффл таргета. Решил попробовать cupy как замену numpy: просто перенести таргет в память gpu и шаффлить прямо там. Улучшения таймингов это не дало, т.к. перемешанный, пусть и быстро, массив 120k элементов всё равно надо было копировать обратно в RAM для подсчёта MI.

К счастью, подумал я, cupy позволяет писать и запускать произвольные ядра Cuda в C++ прямо из питона. Почему бы не выполнить расчёт гистограммы и MI прямо на GPU? Капец я с этим намучался ) Я же совсем забыл, что программирование для GPU - это сущий ад после "обычного", в поточной парадигме: ваша программа выполняется сразу на тысячах потоков, куча ограничений и условий, разделяемая память,синхронизация, атомики, блоки... Плюс я совсем забыл С++ (даже то немногое, что знал). Да ещё cupy иногда радовал перлами типа невозможности подсчитать сумму массива без Visual Studio 2019 (хотя максимум считался нормально).

В итоге всё же добил эту идею, и сейчас у меня есть реализация критической части на Cuda )

Что же по скорости?

%timeit показывает, что массив 120k элементов ноутбучная 1050Ti шаффлит в 4 раза быстрее, чем i7-7700HQ. То есть я могу ожидать, что 0.8*0.8*0.7=40% всего времени исполнения сократится в 4 раза. Если поиск на CPU идёт 15 минут, то можно ожидать, что на GPU это будет 15*0.6+15*0,4/4=11 минут.

Напрямую сравнить CPU и GPU не получается, т.к. у разных библ разные сиды и порядок выполнения операций, а длительность всего поиска зависит от случайных решений. Пара запусков дала новое время 12.5-13.0 минут вместо 15. Возможно, где-то налажал, буду ещё профилировать. Но timeit шаффла массива 1M элементов даёт выигрыш уже не в 4, а в 40 раз, т.е., по идее, GPU будет ещё выгоднее для больших датасетов.
#nvidia #cuda

В AMD продолжают рвать волосы под мышками от зависти, видимо. Как же так, карл, наши видеокарточки ведь ничем не хуже по железу, а поди-ка ты, никому и нахрен не нужны, кроме геймеров...

"Аналитики полагают, что продажи ускорителей NVIDIA H100 и A100 превысят полмиллиона единиц в четвертом квартале 2023 года. Между тем, спрос на H100 и A100 настолько велик, что срок поставки серверов на базе этих GPU достигает 52 недель. В то же время Omdia сообщает, что в целом объём поставок серверов в 2023 году сократится на 17–20 % по сравнению с прошлым годом, но при этом выручка в этом направлении вырастет на 6–8 % в годовом исчислении.

Следует также отметить, что многие из крупнейших покупателей специализированных ускорителей NVIDIA H100 и A100 сами разрабатывают собственные специализированные GPU для задач ИИ, высокопроизводительных вычислений и графики. Поэтому в перспективе объёмы закупок оборудования у NVIDIA этими компаниями снизятся по мере перехода на собственные решения.

Эксперты Omdia считают, что крупнейшими покупателями графических ускорителей NVIDIA H100 являются компании Meta и Microsoft. По мнению аналитиков, каждая из них закупила по 150 тыс. указанных ускорителей. В свою очередь Google, Amazon, Oracle и Tencent купили по 50 тыс. указанных специализированных ускорителей. Примечательно, что основная часть серверных ускорителей поставляется операторам гипермасштабируемых облачных услуг. В свою очередь, OEM-производители серверов (Dell, Lenovo, HPE) пока не могут забронировать достаточное количество графических процессоров для ИИ и высокопроизводительных вычислений, чтобы выполнить свои заказы на поставки серверов, утверждают специалисты Omdia."

https://3dnews.ru/1096589/nvidia-prodala-pochti-polmilliona-spetsializirovannih-iiuskoriteley-v-tretem-kvartale-utvergdayut-analitiki-omdia
#cuda

"Cписок возможностей, которые предлагаются свежим драйвером Nvidia R555 для графических процессоров GeForce RTX и ПК с RTX:

поддержка метакоманды DQ-GEMM для обработки квантования INT4 только по весу для LLM;
новые методы нормализации RMSNorm для моделей Llama 2, Llama 3, Mistral и Phi-3;
механизмы группового и многозапросного внимания, а также внимания скользящего окна для поддержки Mistral;
обновления KV для улучшения внимания;
поддержка GEMM-тензоров, не кратных 8, для улучшения производительности контекстной фазы.

Благодаря методам оптимизации, добавленным в это обновление, производительность больших языковых моделей Phi-3, Llama 3, Gemma и Mistral увеличивается до трёх раз."

https://3dnews.ru/1105200/posledniy-drayver-nvidia-vtroe-povishaet-iiproizvoditelnost-geforce-rtx-a-takge-pk-i-rabochih-stantsiy-s-poddergkoy-rtx