Про Сербию
⏱ Только вернулся из командировки в Сербию
Туда переехало много русских. Они же открыли кафе и парикмахерские. Сербы приветливые, добрые и хорошо к нам относятся. Да и не ощущается там как зарграницой в целом - менталитет у людей в целом схожий, как мне показалось
Если честно, я не ожидал такой похожести
❗️ Текущий курс зеленого добавляет минусов. Сейчас в Сербии дороговато. +20-30% относительно наших цен на мой взгляд. Если вы зарабатываете в рублях или сопоставимо российским зарплатам, то, скорее всего, ваш реальный уровень жизни там будет хуже
🛣 Теплый климат, снег выпадет максимум несколько раз в заморозки. Не сильно высокий уровень жизни, низкие дома
Такси - хорошо работает Яндекс GO, хотя и только в рамках городов
Темп жизни относительно медленный, как мне показалось. Хотя в целом похоже на Россию за пределами Москвы. Только граффити там не чистят, оно повсюду
🤔 Я бы сам туда не поехал жить. Мне очень нравится Москва и ее высокий темп. Да и пересечся за кофе в Москве сильно проще с любым человеком
Хотя я уже встретил несколько ребят, которые всерьез думают переезжать туда. Да и те кто переехал в целом довольны. Так что тут скорее индивидуально. Если задумаетесь - поедте посмотрите сначала. Вдруг передумаете
⏱ Только вернулся из командировки в Сербию
Туда переехало много русских. Они же открыли кафе и парикмахерские. Сербы приветливые, добрые и хорошо к нам относятся. Да и не ощущается там как зарграницой в целом - менталитет у людей в целом схожий, как мне показалось
Если честно, я не ожидал такой похожести
🛣 Теплый климат, снег выпадет максимум несколько раз в заморозки. Не сильно высокий уровень жизни, низкие дома
Такси - хорошо работает Яндекс GO, хотя и только в рамках городов
Темп жизни относительно медленный, как мне показалось. Хотя в целом похоже на Россию за пределами Москвы. Только граффити там не чистят, оно повсюду
Хотя я уже встретил несколько ребят, которые всерьез думают переезжать туда. Да и те кто переехал в целом довольны. Так что тут скорее индивидуально. Если задумаетесь - поедте посмотрите сначала. Вдруг передумаете
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🤔2❤1
NVLink C2C - адаптация технологий Nvidia для CPU
🍀 У Nvidia появился новый интересный продукт
Внезапно, Grace Hopper CPU!
Как так вышло? Помните, Nvidia пыталась купить Arm, а ей не дали?
Хотя купить компанию не вышло, смогли сделать коллаборацию. В случае с Arm это значит, что Nvidia взяла лицензию на производство процессоров Arm у одноименной компании
И они не просто купили лицензию, но и адаптировали Nvlink, чтобы на него можно было посадить CPU
Еще и память проапгрейдили
Итого на выходе
1. Два места на плате - Arm cpu + GPU или Arm cpu + Arm cpu
2. 900! GB/s пропускная спомобность между слотами
3. LPDDR5X - 500 GB/s память для cpu
💡 Этот чип должен очень хорошо подойти для задач, где существенная часть алгоритма работает на CPU.
Например, для рекомендательных систем. Эмбеддинги можно будет считать на CPU с хорошим параллелизмом и грузить на GPU, что позволить значительно ускорить алгоритм в целом
Еще пишут, что LLM сильно ускоряют в сценарии ZeRO (это когда на GPU держат только использующиеся в моменте тензора). Однако не понятно, как быстро будет изнашиваться система, если так гонять постоянно
🚀 Вот тут очень много сравнений
Возможно в следующих постах более конкретно разберу какую-то из частей
Внезапно, Grace Hopper CPU!
Как так вышло? Помните, Nvidia пыталась купить Arm, а ей не дали?
Хотя купить компанию не вышло, смогли сделать коллаборацию. В случае с Arm это значит, что Nvidia взяла лицензию на производство процессоров Arm у одноименной компании
И они не просто купили лицензию, но и адаптировали Nvlink, чтобы на него можно было посадить CPU
Еще и память проапгрейдили
Итого на выходе
1. Два места на плате - Arm cpu + GPU или Arm cpu + Arm cpu
2. 900! GB/s пропускная спомобность между слотами
3. LPDDR5X - 500 GB/s память для cpu
Например, для рекомендательных систем. Эмбеддинги можно будет считать на CPU с хорошим параллелизмом и грузить на GPU, что позволить значительно ускорить алгоритм в целом
Еще пишут, что LLM сильно ускоряют в сценарии ZeRO (это когда на GPU держат только использующиеся в моменте тензора). Однако не понятно, как быстро будет изнашиваться система, если так гонять постоянно
🚀 Вот тут очень много сравнений
Возможно в следующих постах более конкретно разберу какую-то из частей
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🚀 Проекты инвестфондов
Начну новую ветку с разбором проектов
Буду проходиться по интересным проектам инвестфондов и рассматривать их бизнес модели, успехи и техническую часть
Чем это может быть полезно?
Первое что приходит в голову - инвестиции. Если вы хотите идти через инвест капитал, стоит анализировать компании портфеля. Они, как правило, имеют масштабируемость, рискованность и другие похожие черты
💡 Но даже если вы как я с настороженностью относитесь к "стартапному капиталу" (это когда еще никто ничего не покупает, но деньги осваиваются), то есть еще и другие причины:
1. Маркетинг. Компании портфеля делают его очень хорошо
Технари его недооценивают (я вижу по себе и моему окружению). Можно быть дофига технологичным, но важно уметь рассказывать об этом и показывать, какую пользу это несет
В B2B решения принимает менеджмент, а не те, кто напрямую получает пользу с ваших разработок
2. Ценность. Она проста и понятна
3. Технологии и точки развития (или тренды). Инвестфонды видят, а иногда даже задают направления для развития технологий. Это стоит иметь ввиду или даже приобщаться
4. Реальное применение технологий и вид со стороны бизнеса. Можно смотреть и на код в GitHub, однако большинство такого кода в реальности не используется
А если учесть, что инвестфонды на главные страницы размещают свои самые успешные проекты - у них точно можно учится
🤔 Какие фонды пока приходят на ум:
1. YC
2. Andreessen Horowitz (aka a16z)
3. SoftBank Vision fund
4. Sequoia Capital
5. Tiger Global
Начну новую ветку с разбором проектов
Буду проходиться по интересным проектам инвестфондов и рассматривать их бизнес модели, успехи и техническую часть
Чем это может быть полезно?
Первое что приходит в голову - инвестиции. Если вы хотите идти через инвест капитал, стоит анализировать компании портфеля. Они, как правило, имеют масштабируемость, рискованность и другие похожие черты
1. Маркетинг. Компании портфеля делают его очень хорошо
Технари его недооценивают (я вижу по себе и моему окружению). Можно быть дофига технологичным, но важно уметь рассказывать об этом и показывать, какую пользу это несет
В B2B решения принимает менеджмент, а не те, кто напрямую получает пользу с ваших разработок
2. Ценность. Она проста и понятна
3. Технологии и точки развития (или тренды). Инвестфонды видят, а иногда даже задают направления для развития технологий. Это стоит иметь ввиду или даже приобщаться
4. Реальное применение технологий и вид со стороны бизнеса. Можно смотреть и на код в GitHub, однако большинство такого кода в реальности не используется
А если учесть, что инвестфонды на главные страницы размещают свои самые успешные проекты - у них точно можно учится
1. YC
2. Andreessen Horowitz (aka a16z)
3. SoftBank Vision fund
4. Sequoia Capital
5. Tiger Global
Please open Telegram to view this post
VIEW IN TELEGRAM
Y Combinator
The YC Startup Directory | Y Combinator
A list of companies YC has funded across many verticals including hardware, edtech, biotech, healthcare, developer tools, consumer and enterprise, to name a few.
👍4❤2
Партнер sequoia David Cahn недавно опубликовал статью о текущем буме ИИ
Nvidia по скромным оценкам продаст железа на 50 млрд $ в этом году. Давайте посчитаем, а какая выручка должна быть сгенерирована теми, кто это железо будет использовать, чтобы вложения были успешными?
По оценкам Давида - если сложить:
1. Стоимость железа - 50
2. Lifetime потребление электричества - 50
3. Маржа облаков (они сейчас больше всего строят ИИ датацентров) - 50
4. Маржа компаний, создающих прикладной ИИ - 50
Выходит, что стартапам и компаниям прикладного ИИ нужно сгенерировать 200 млрд $
Да, расчеты вызывают вопросы - прогноз пальцем по воде. Тем не менее, порядок оценки имеет место быть
Лидер - ChatGPT - прогнозирует выручку 1 млрд $. А это на минутку лидер существенно опережающий всех
Даже если сложить ожидания всех игроков о их заработках (а ожидания вообще говоря не всегда выполняются) - получится 125 млрд $ (это тоже пальцем по воде)
Итого имеет место явный разрыв, который пока закрывать нечем:
1. Железа закуплено ооочень много
2. Текущая выручка - крохотная по сравнению с CapEx
3. Обещания игроков в сумме сильно меньше текущих трат на железо
Главный выгодополучатель тут Nvidia, о чем я уже писал
А Sequoia активно ищет тех, кто найдет применение такому объему железа и сможет создать добавленную ценность на основе прикладного ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
🚀 Построение большого стораджа на примере S3
Рекомендую к прочтению в оригинале, если интересна инфраструктура, хранилища и SaaS (есть в переводе)
У меня за последние два месяца началось переосмысление восприятия хранилищ и СУБД. Раньше я на них не заострялся, и выглядели они больше как черные ящики. На самом деле такое же програмное обеспечение, состоящее из компонент. А сложным и большим оно становится спустя годы инвестиций в разработку
Идеи из статьи:
Для инженеров - в статье интересно рассказано про большие SaaS системы на примере s3 и опыта автора:
- Все начинается с простого. Изначально S3 - стандартное микросервисное приложение, выросшее в большую систему
- S3 огромна. За каждую компоненту отвечает отдельная команда
- Эффект масштаба. Имея общие диски для данных, S3 балансирует между ними нагрузку. В итоге каждый клиент получает меньше хвостовых задержек, а S3 эффективно справляется с нагрузкой
- Нивелирование человеческого фактора - ревью тесты на надежность и сравнение с работающие системой при рефакторинге
Для менеджеров - автор делится идеями про лидерство.
- Каждый функционал выделен в отдельный микросервис. У него есть конкретный владелец - человек и его команда
- Важно работать над инициативой. Важно чтобы люди сами приходили к идеям (Вам же тоже так интереснее, не правда ли?). Так они будут брать ответственность за свои идеи и реализовывать их на порядок лучше
Рекомендую к прочтению в оригинале, если интересна инфраструктура, хранилища и SaaS (есть в переводе)
У меня за последние два месяца началось переосмысление восприятия хранилищ и СУБД. Раньше я на них не заострялся, и выглядели они больше как черные ящики. На самом деле такое же програмное обеспечение, состоящее из компонент. А сложным и большим оно становится спустя годы инвестиций в разработку
Идеи из статьи:
Для инженеров - в статье интересно рассказано про большие SaaS системы на примере s3 и опыта автора:
- Все начинается с простого. Изначально S3 - стандартное микросервисное приложение, выросшее в большую систему
- S3 огромна. За каждую компоненту отвечает отдельная команда
- Эффект масштаба. Имея общие диски для данных, S3 балансирует между ними нагрузку. В итоге каждый клиент получает меньше хвостовых задержек, а S3 эффективно справляется с нагрузкой
- Нивелирование человеческого фактора - ревью тесты на надежность и сравнение с работающие системой при рефакторинге
Для менеджеров - автор делится идеями про лидерство.
- Каждый функционал выделен в отдельный микросервис. У него есть конкретный владелец - человек и его команда
- Важно работать над инициативой. Важно чтобы люди сами приходили к идеям (Вам же тоже так интереснее, не правда ли?). Так они будут брать ответственность за свои идеи и реализовывать их на порядок лучше
All Things Distributed
Building and operating a pretty big storage system called S3
Three distinct perspectives on scale that come along with building and operating a storage system the size of S3.
⚡2🔥1
🤔 Какие вычислители будут дальше? После CPU и GPU?
Большой сдвиг в качестве алгоритмов происходит по двум причинам:
1. Изобретают более быстрые вычислители
2. Придумывают новые алгоритмы, которые могут максимально использовать особенности нового железа
Сейчас мы начали упиратся в существующие вычислители. Яркая иллюстрация - обучение LLM на тысячах видеокарт в дорогущих датацентрах.
Все чаще слышу мнение от классных специалистов, что следующий прорыв будет не за счет программистов, а за счет железа. При этом я пока не видел реальных кандидатов на эту роль.
Есть точечные асики под конкретные узкоспециализированные задачи. В них я очень верю
При этом точно не стоит пытаться обгонять Nvidia, ARM, AMD и других гигантов на их поле. Почти все, что стартап может предложить, они могут повторить лучше. Возможно только развитие в нише, которая слишком мала и не рентабельна для них. При этом стартап берет на себя риск, выбирая нишу, ведь она может и не вырасти
Пару примеров оптимизаций под нишу:
Cerebras
1. Большая поверхность кристала. Мини кластер на чипе. Интересно даже, какой объем брака при литографии
2. Водяное охлаждение. У обычных GPU даже с небольшой плотностью тут проблемы. А как охлаждать такую большую плату - не очевидно
При этом позиционируются на имитационное моделирование и задачи фармы. Там нужна большая параллельность, а большой кластер избыточен
Мне они писали, что в 100 раз быстрее GPU. Звучит странно, но, может, в каких-то отдельных задачах
Lemurian Labs
Про них недавно увидел колонку
Тут пока реального чипа нет, только прототип и симуляции
1. Более равномерный формат данных для вычислений. Не совсем очевидно, почему его не могут сделать другие. Да и на програмном уровне для квантизованного инференса это уже есть
2. Более богатый менеджмент памяти - отдельный блок на reshape и кеши. Тоже, что и с пунктом 1
В данном случае перспективы больше сделать и продать технологию и команду
Стартапов, конечно, гораздо больше. Большинство пока либо без явных преимуществ, либо нишевые, и мы вряд ли о них часто слышим
Большой сдвиг в качестве алгоритмов происходит по двум причинам:
1. Изобретают более быстрые вычислители
2. Придумывают новые алгоритмы, которые могут максимально использовать особенности нового железа
Сейчас мы начали упиратся в существующие вычислители. Яркая иллюстрация - обучение LLM на тысячах видеокарт в дорогущих датацентрах.
Все чаще слышу мнение от классных специалистов, что следующий прорыв будет не за счет программистов, а за счет железа. При этом я пока не видел реальных кандидатов на эту роль.
Есть точечные асики под конкретные узкоспециализированные задачи. В них я очень верю
При этом точно не стоит пытаться обгонять Nvidia, ARM, AMD и других гигантов на их поле. Почти все, что стартап может предложить, они могут повторить лучше. Возможно только развитие в нише, которая слишком мала и не рентабельна для них. При этом стартап берет на себя риск, выбирая нишу, ведь она может и не вырасти
Пару примеров оптимизаций под нишу:
Cerebras
1. Большая поверхность кристала. Мини кластер на чипе. Интересно даже, какой объем брака при литографии
2. Водяное охлаждение. У обычных GPU даже с небольшой плотностью тут проблемы. А как охлаждать такую большую плату - не очевидно
При этом позиционируются на имитационное моделирование и задачи фармы. Там нужна большая параллельность, а большой кластер избыточен
Мне они писали, что в 100 раз быстрее GPU. Звучит странно, но, может, в каких-то отдельных задачах
Lemurian Labs
Про них недавно увидел колонку
Тут пока реального чипа нет, только прототип и симуляции
1. Более равномерный формат данных для вычислений. Не совсем очевидно, почему его не могут сделать другие. Да и на програмном уровне для квантизованного инференса это уже есть
2. Более богатый менеджмент памяти - отдельный блок на reshape и кеши. Тоже, что и с пунктом 1
В данном случае перспективы больше сделать и продать технологию и команду
Стартапов, конечно, гораздо больше. Большинство пока либо без явных преимуществ, либо нишевые, и мы вряд ли о них часто слышим
👍4🔥1
Почему мы все используем карты Nvidia для ИИ?
1. Они в большинстве кейсов №1 по производительности
2. Существует множество форм-факторов карт, код под которые пишется на одном и том же CUDA Toolkit
3. Nvidia выкладывает высокопроизводительный софт (часто лучший для своей ниши) с поддержкой CUDA
Все это она делает более 15 лет (если считать точкой отсчета релиз CUDA в 2008)
Больше - здесь
1. Они в большинстве кейсов №1 по производительности
2. Существует множество форм-факторов карт, код под которые пишется на одном и том же CUDA Toolkit
3. Nvidia выкладывает высокопроизводительный софт (часто лучший для своей ниши) с поддержкой CUDA
Все это она делает более 15 лет (если считать точкой отсчета релиз CUDA в 2008)
Больше - здесь
vc.ru
Почему все используют видеокарты Nvidia — Разработка на vc.ru
Сейчас ИИ переживает большой хайп.
👍2🔥1
Как устроен антифрод в Stripe? И что мы можем подметить?
Увидел статью по Radar - антифрод системе Stripe
Заменили ансамбль бустинга и линейной модели на ResNeXt like нейросеть, состоящую из блоков с разными ветвями
И вот какую дельту получили:
+ Проще модель и система в целом
+ Быстрее обучение
+ Быстрее инференс
+ Лучше качество модели (если много качественных данных)
- Меньше интерпретируемость
Не смотря на потерю в интерпретируемости решили внедрить. А потерю восполнить за счет более качественного анализа фичей и их влияния на оценку подозрительность транзакций
Автоматизация и понятная визуализация результатов Radar приводит к более быстрым разборам блокировок транзакций клиентов
Подметил несколько тенденций:
1. Бустинг меняют на нейросети для табличных данных. С оговоркой, что во всех таких кейсах размеченных данных терабайты. В случае Stripe транзакции размечает поддержка. Вот вам и задел на онлайн обучение или хотябы частое переобучение
2. ResNext like модели хороши на данных больших размерностей (фичей что численных, что категориальных там куча). Я вообще больше модели компьютерного зрения учил, и для меня было забавно слышать от коллег на работе, что resnext - это про задачи оптимизации, и в них идеи бранчинга блоков тоже прижились
3. Интерпретируемость. Ее хотят и пытаются достичь. В случае с нейронками это тяжелая и последовательная работа по анализу работы алгоритма и значимости фичей. А потом обдумывание, как бы их понятно показывать и доводить до поддержки и клиентов
4. Все больше закапываемся в оптимизации обучения и инференса. Нейросети хочется глубже, размеченных данных все больше, а ускорители растут по производительности медленнее аппетитов. В оптимизационных задачах с большим объемом разметки задача все чаще пропихнуть в обучение как можно больше данных. В связи с этим начинают появляться кастомные обучалки и инференсы
Увидел статью по Radar - антифрод системе Stripe
Заменили ансамбль бустинга и линейной модели на ResNeXt like нейросеть, состоящую из блоков с разными ветвями
И вот какую дельту получили:
+ Проще модель и система в целом
+ Быстрее обучение
+ Быстрее инференс
+ Лучше качество модели (если много качественных данных)
- Меньше интерпретируемость
Не смотря на потерю в интерпретируемости решили внедрить. А потерю восполнить за счет более качественного анализа фичей и их влияния на оценку подозрительность транзакций
Автоматизация и понятная визуализация результатов Radar приводит к более быстрым разборам блокировок транзакций клиентов
Подметил несколько тенденций:
1. Бустинг меняют на нейросети для табличных данных. С оговоркой, что во всех таких кейсах размеченных данных терабайты. В случае Stripe транзакции размечает поддержка. Вот вам и задел на онлайн обучение или хотябы частое переобучение
2. ResNext like модели хороши на данных больших размерностей (фичей что численных, что категориальных там куча). Я вообще больше модели компьютерного зрения учил, и для меня было забавно слышать от коллег на работе, что resnext - это про задачи оптимизации, и в них идеи бранчинга блоков тоже прижились
3. Интерпретируемость. Ее хотят и пытаются достичь. В случае с нейронками это тяжелая и последовательная работа по анализу работы алгоритма и значимости фичей. А потом обдумывание, как бы их понятно показывать и доводить до поддержки и клиентов
4. Все больше закапываемся в оптимизации обучения и инференса. Нейросети хочется глубже, размеченных данных все больше, а ускорители растут по производительности медленнее аппетитов. В оптимизационных задачах с большим объемом разметки задача все чаще пропихнуть в обучение как можно больше данных. В связи с этим начинают появляться кастомные обучалки и инференсы
Stripe
How we built it: Stripe Radar
What makes Radar, Stripe’s fraud prevention solution, so powerful? Here are some of the key decisions made—and lessons learned—in the years it has taken to build it.
🔥1
Meta вчера представила базовую модель Emu для генерации видео и редактирования изображений
На мой взгляд она одна из самых качественных, что я видел. Выглядит так, что возможности движения на генерациях ограничены, но такого достаточно для большого количества приложений
Meta на самом деле ориентируется на использование в своей экосистеме и видит модель как генератор GIF, скетчей и набросков (мне кажется это пока вообще основное применение таким моделям), а также как редактор изображений для социальных сетей
Статья
На мой взгляд она одна из самых качественных, что я видел. Выглядит так, что возможности движения на генерациях ограничены, но такого достаточно для большого количества приложений
Meta на самом деле ориентируется на использование в своей экосистеме и видит модель как генератор GIF, скетчей и набросков (мне кажется это пока вообще основное применение таким моделям), а также как редактор изображений для социальных сетей
Статья
Meta AI
Emu Video and Emu Edit: Our latest generative AI research milestones
Today, we’re announcing new research into controlled image editing based solely on text instructions and a method for text-to-video generation based on diffusion models.
А вот и релиз видеогенерации, которую можно потрогать и использовать
Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
Модель
Статья
Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
Модель
Статья
GitHub
GitHub - Stability-AI/generative-models: Generative Models by Stability AI
Generative Models by Stability AI. Contribute to Stability-AI/generative-models development by creating an account on GitHub.
🔥3
Позвали на хакатон техэкспертом
У меня CV/ML кейс от сколтеха
На самом деле хороший способ вырваться и чуть сменить картинку перед глазами
В основном тут школьники и студенты 1-2х курсов, но я поймал себя на мысли, что было бы круто и мне поучаствовать
Хакатон очень хорошее место, чтобы получить себе проект в портфолио - нужно всего два-три дня, а условия создаются около идеальные: все данные собраны, почищены и размечены, а заказчик уже зафиксировал конечную цель и не нужно итерироваться
У меня CV/ML кейс от сколтеха
На самом деле хороший способ вырваться и чуть сменить картинку перед глазами
В основном тут школьники и студенты 1-2х курсов, но я поймал себя на мысли, что было бы круто и мне поучаствовать
Хакатон очень хорошее место, чтобы получить себе проект в портфолио - нужно всего два-три дня, а условия создаются около идеальные: все данные собраны, почищены и размечены, а заказчик уже зафиксировал конечную цель и не нужно итерироваться
👍3🤔1💯1
Про оптимизации кода
За последние 3 месяца пришлось поускорять код под x86 и arm
Принято считать, что современные компиляторы и так хорошо оптимизируют. И это правда, когда дело касается простых вещей в духе копирования массива
Но компилятор не может оптимизировать неизвестное на момент компиляции:
1. Если в цикле есть if, он может разломать векторизацию или добавить миспредикт бранча
2. Что в GPU, что в CPU недоутилизация вычислителя часто упирается в пропускную способность памяти и ее размеры (для GPU - память девайса. Для CPU - L1-L3 кэши). Так вот компилятор не может заранее понять, какие данные переиспользуются и от того будет постоянно перевытеснять их в кэшах.
3. Выравнивание по кэш линии
Если у вас есть межядерное взаимодействие, то, если два значения будут расположены в одной кэш линии, протокол синхронизации будет замедлять работу на обращении к каждой ячейке в кэш линии
Самый простой способ и самый стреляющий - объявить в классе
atomic<int> first;
atomic<int> second;
И вот уже два кажется независимых атомика сидят в одной кэшлинии и живут как один. А вы не понимаете, где этот ваш lock-free и почему такой маленький (в 2-4 раза меньше) bandwidth
4. Если вычислитель имеет несколько физических вычислительных блоков, то компилятор может недоутилизировать данный параллелизм. Например, автоматический unroll циклов затруднен при зависимостях между итерациями
5. Функции стандартной библиотеки должны быть универсальны, надежны и поддерживаемы. От сюда даже такие вещи как сортировка и бинарный поиск могут быть ускоренны в разы, не меняя алгоритм. Даже в с++. Хотя для этого вам нужно будет использовать simd инструкции под определенный тип данных
6. Numa ноды.
Если память выделится на одной ноде, поток вытеснится и перешедулится на ядро другой ноды - получите задержку на копирования между нумами (шаг протокола синхронизации)
Хотя, честно, Numa ноды сильно чаще упоминают, чем они реально улучшают производительность - в большинстве приложений микросекундные задержки не видны
Материалов на эту тему много. Мне очень понравилась книга от Сергея Слотина. Многое из того, что приходилось выискивать, там есть в хорошем качестве
Но опять же, пока сами не уткнетесь, в важность не поверите)
За последние 3 месяца пришлось поускорять код под x86 и arm
Принято считать, что современные компиляторы и так хорошо оптимизируют. И это правда, когда дело касается простых вещей в духе копирования массива
Но компилятор не может оптимизировать неизвестное на момент компиляции:
1. Если в цикле есть if, он может разломать векторизацию или добавить миспредикт бранча
2. Что в GPU, что в CPU недоутилизация вычислителя часто упирается в пропускную способность памяти и ее размеры (для GPU - память девайса. Для CPU - L1-L3 кэши). Так вот компилятор не может заранее понять, какие данные переиспользуются и от того будет постоянно перевытеснять их в кэшах.
3. Выравнивание по кэш линии
Если у вас есть межядерное взаимодействие, то, если два значения будут расположены в одной кэш линии, протокол синхронизации будет замедлять работу на обращении к каждой ячейке в кэш линии
Самый простой способ и самый стреляющий - объявить в классе
atomic<int> first;
atomic<int> second;
И вот уже два кажется независимых атомика сидят в одной кэшлинии и живут как один. А вы не понимаете, где этот ваш lock-free и почему такой маленький (в 2-4 раза меньше) bandwidth
4. Если вычислитель имеет несколько физических вычислительных блоков, то компилятор может недоутилизировать данный параллелизм. Например, автоматический unroll циклов затруднен при зависимостях между итерациями
5. Функции стандартной библиотеки должны быть универсальны, надежны и поддерживаемы. От сюда даже такие вещи как сортировка и бинарный поиск могут быть ускоренны в разы, не меняя алгоритм. Даже в с++. Хотя для этого вам нужно будет использовать simd инструкции под определенный тип данных
6. Numa ноды.
Если память выделится на одной ноде, поток вытеснится и перешедулится на ядро другой ноды - получите задержку на копирования между нумами (шаг протокола синхронизации)
Хотя, честно, Numa ноды сильно чаще упоминают, чем они реально улучшают производительность - в большинстве приложений микросекундные задержки не видны
Материалов на эту тему много. Мне очень понравилась книга от Сергея Слотина. Многое из того, что приходилось выискивать, там есть в хорошем качестве
Но опять же, пока сами не уткнетесь, в важность не поверите)
🔥4
С началом нового года вас!
Опубликовал перевод статьи с dev блога
В таких статьях иногда много воды, но они полезны для расширения кругозора
Опубликовал перевод статьи с dev блога
В таких статьях иногда много воды, но они полезны для расширения кругозора
Хабр
Выборочное удаление столбцов для повышения эффективности хранения в озерах данных
Введение По мере роста Uber объем обрабатываемых данных и количество обращений к ним многократно возросли. Такое быстрое увеличение объема привело к росту затрат на хранение и вычислительные ресурсы....
❤2
Selective Column Reduction for DataLake Storage Cost Efficiency
Хотим научиться удалять столбцы в таблицах не делая дорогостоящие чтения и записи
Для этого залезем внутрь формата данных Apache Parquet, руками скопируем чанки данных с нужными нам колонками, а чанки с ненужными - просто пропустим
После запишем новые смещения начала чанков в метаданные
Если необходимо - в конце операции можно потереть исходный файл с чанками (в партиционированных таблицах копирование не страшно, т.к. чанки не сильно большие)
И, конечно, заметим, что это по сути Map операция, поэтому можно эффективно делать ее распределенно: запускаем несколько задач - по одной для каждого физического файла под абстракцией таблицы
Что мне нравится в этой статье
- Базово про Parquet и вообще затрагивается тема layout таблицы на диске
- Не боимся лезть внутрь движков и на масштабе получать экономию (кластера обычно общие, поэтому сэкономленное железо пойдет под утилизацию другими задачами)
- Натягиваем алгоритм на использующийся движок (у Uber это Spark, но это не принципиально)
оригинал
Хотим научиться удалять столбцы в таблицах не делая дорогостоящие чтения и записи
Для этого залезем внутрь формата данных Apache Parquet, руками скопируем чанки данных с нужными нам колонками, а чанки с ненужными - просто пропустим
После запишем новые смещения начала чанков в метаданные
Если необходимо - в конце операции можно потереть исходный файл с чанками (в партиционированных таблицах копирование не страшно, т.к. чанки не сильно большие)
И, конечно, заметим, что это по сути Map операция, поэтому можно эффективно делать ее распределенно: запускаем несколько задач - по одной для каждого физического файла под абстракцией таблицы
Что мне нравится в этой статье
- Базово про Parquet и вообще затрагивается тема layout таблицы на диске
- Не боимся лезть внутрь движков и на масштабе получать экономию (кластера обычно общие, поэтому сэкономленное железо пойдет под утилизацию другими задачами)
- Натягиваем алгоритм на использующийся движок (у Uber это Spark, но это не принципиально)
оригинал
🔥3
R&D в Google
Как правило, компании по-разному понимают функционал отделов и команд в структуре компании. Глобально можно сказать, что в разработке есть R = “Research” и D = “Development”.
С Development понятно - это команды, обычно ориентированные на выполнение плана и выгоду на горизонте до 6-12 месяцев
С R&D, если смотреть по рынку в целом, в основном компании чуть сваливаются в одну из сторон:
1. В Research:
задача улучшить алгоритм и оформить результат в виде презентаций и статей. О таком формате я часто слышу от ребят из Huawei/Samsung (справедливости ради, часто они себя явно Research называют, а не R&D)
2. В Development:
Задача - зарабатывать деньги, метрики вовлеченности и тд
У меня в отделе так - нет заработанных денег => нет больших премий
Наши команды явно позиционируются как продуктовые
И очень сложно сказать, что вот этот человек исследователь, а этот - копатель. Исследователь может под себя полезть переписывать часть движка инференса, потому что никто другой это делать не пойдет
Наткнулся на статью 2012 года от Гугла. Еще есть хороший обзор с инфографикой на медиуме
Они про второй тип - командам необходимо дать конкретную пользу на горизонте максимум нескольких лет.
Нет явного разделения. Людей переводят между ролями для разнообразия задач и опыта. Это позволяет нанимать реально крутых ребят и закрывать дыру непонимания между исследованиями и продуктом
И это в целом соответствует желаниям большей части хороших разработчиков - хочется держать баланс между исследованием и практикой внедрения
Как правило, компании по-разному понимают функционал отделов и команд в структуре компании. Глобально можно сказать, что в разработке есть R = “Research” и D = “Development”.
С Development понятно - это команды, обычно ориентированные на выполнение плана и выгоду на горизонте до 6-12 месяцев
С R&D, если смотреть по рынку в целом, в основном компании чуть сваливаются в одну из сторон:
1. В Research:
задача улучшить алгоритм и оформить результат в виде презентаций и статей. О таком формате я часто слышу от ребят из Huawei/Samsung (справедливости ради, часто они себя явно Research называют, а не R&D)
2. В Development:
Задача - зарабатывать деньги, метрики вовлеченности и тд
У меня в отделе так - нет заработанных денег => нет больших премий
Наши команды явно позиционируются как продуктовые
И очень сложно сказать, что вот этот человек исследователь, а этот - копатель. Исследователь может под себя полезть переписывать часть движка инференса, потому что никто другой это делать не пойдет
Наткнулся на статью 2012 года от Гугла. Еще есть хороший обзор с инфографикой на медиуме
Они про второй тип - командам необходимо дать конкретную пользу на горизонте максимум нескольких лет.
Нет явного разделения. Людей переводят между ролями для разнообразия задач и опыта. Это позволяет нанимать реально крутых ребят и закрывать дыру непонимания между исследованиями и продуктом
И это в целом соответствует желаниям большей части хороших разработчиков - хочется держать баланс между исследованием и практикой внедрения
🔥4❤1🤔1
Обзор баз данных за 2023
В Carnegie Mellon University (CMU) есть очень сильная группа по базам данных. Во многом благодаря Andy Pavlo - очень крутому профессору с отличной подачей материала на лекциях
Еще у него есть стартап Ottertune, который с помощью ML настраивает параметры для баз данных для лучшей производительности
Он делает ежегодные обзоры индустрии. Поверьте, там есть что разбирать. Потому что стартапы по базам данных открываются и закрываются огромными объемами 😁
Что произошло в прошлом году?
1. Подъем популярности векторных баз данных. Во многом благодаря LLM и возможности по эмбедингам искать приближенно документы в “базе знаний”. И вот компании, типа Qdrant, Pinecone и Weaviate подняли существенные раунды
Но вот основная проблема в том, что функционал поиска по вектору - это по сути просто KNN индекс, которую может реализовать почти дюбая СУБД. Например просто интегрировав к себе faiss. Потому конкуренция и давление будут усиливаться
И, по большому счету, у векторных баз есть два пути
а. Превращаться в подобие MongoDB и служить базой записей. И заниматься реализацией SQL, распределенности и тд
б. Становиться вторичным специализированным движком (как Elasticsearch для логов)
2. Улучшения SQL стандарта
а. Поддержка графовых запросов. Пока в стандарте и реализовано только у Oracle. Должно стать меньше извращений с обходом графа
б. Поддержка многомерных массивов. С одной стороны это то же извращение, что и хранить json вместо создания нормальной таблицы и SQL база не очень про такую логику. С другой стороны, такое нововведение точно улучшит жизнь аналитикам, которые не будут вынуждены все сначала выгружать в python, а потом руками обрабатывать
*Наличие стандарта не означает наличие стабильной реализации (применимо вообще ко всему в ИТ)
3. Драмма MariaDB
Если коротко, то пахнет жареным. Перед IPO в тихую вывели 99% фандинга с профитной части компании. Акции упали на 90% от стоимости на IPO. Непрофитная часть, которая занимается поддержкой opensourse, говорит, что люди из профитной части не очень компетентны
Основатель обругал CEO при всех и ушел с командой
В общем то грусть и печаль. Пострадают те, кто поверили в проект и могут остаться без поддержки
Тут же Andy подмечает, что смерть профитной части компании почти всегда приводит к смерти проекта, каким бы опенсурсным он не был (за очень редкими исключениями). Мало кто готов заниматься благотворительностью. Доработка и поддержка любой софтины - тяжелая работа
4. Как в январе 2023 крашнулась система NOTAM, предупреждающая пилотов об опасности.
Было нарушено расписание примерно 11000 рейсов (задержка/экстренная посадка)
Судя по всему, система не менялась с момента закупки в 80х годах. И скорее всего, держала не больше 50 RPS (что забавно в сравнении с текущими производительностями систем)
Причина ошибки - покоррапченные файлы. И на последок: бекап, из которого попытались восстановить систему, оказался тоже нарушенным. Вообще восстановление из бекапа - это очень важный сценарий, который стоит регулярно прогонять на своих бекапах, иначе защита от ваших бекапов на уровне иконок в машине, приклеенных на место разрыва подушки безопасности
И в целом - стоит меньше доверять надежности систем. Кто бы что не говорил - они падают. Даже у гигантов индустрии.
А гарантии отказоустойчивости - не всегда выполнимы (маркетологи баз данных Вам поклянутся об обратном 😊)
5. Венчур в стартапах по базам данных
Много денег поднято. Но учитывая ситуацию в мире, вполне возможны дальнейшие сокращения персонала
TileDB - 34m$ series B
SQreamDB - 45m$ Series C
Neon - 46m$ series B
MotherDuck - 52.5m$ series B
DBeaver - 5m$ seed round (вот этой штукой я пользуюсь, но пока не понятно, почему я должен захотеть заплатить)
В Carnegie Mellon University (CMU) есть очень сильная группа по базам данных. Во многом благодаря Andy Pavlo - очень крутому профессору с отличной подачей материала на лекциях
Еще у него есть стартап Ottertune, который с помощью ML настраивает параметры для баз данных для лучшей производительности
Он делает ежегодные обзоры индустрии. Поверьте, там есть что разбирать. Потому что стартапы по базам данных открываются и закрываются огромными объемами 😁
Что произошло в прошлом году?
1. Подъем популярности векторных баз данных. Во многом благодаря LLM и возможности по эмбедингам искать приближенно документы в “базе знаний”. И вот компании, типа Qdrant, Pinecone и Weaviate подняли существенные раунды
Но вот основная проблема в том, что функционал поиска по вектору - это по сути просто KNN индекс, которую может реализовать почти дюбая СУБД. Например просто интегрировав к себе faiss. Потому конкуренция и давление будут усиливаться
И, по большому счету, у векторных баз есть два пути
а. Превращаться в подобие MongoDB и служить базой записей. И заниматься реализацией SQL, распределенности и тд
б. Становиться вторичным специализированным движком (как Elasticsearch для логов)
2. Улучшения SQL стандарта
а. Поддержка графовых запросов. Пока в стандарте и реализовано только у Oracle. Должно стать меньше извращений с обходом графа
б. Поддержка многомерных массивов. С одной стороны это то же извращение, что и хранить json вместо создания нормальной таблицы и SQL база не очень про такую логику. С другой стороны, такое нововведение точно улучшит жизнь аналитикам, которые не будут вынуждены все сначала выгружать в python, а потом руками обрабатывать
*Наличие стандарта не означает наличие стабильной реализации (применимо вообще ко всему в ИТ)
3. Драмма MariaDB
Если коротко, то пахнет жареным. Перед IPO в тихую вывели 99% фандинга с профитной части компании. Акции упали на 90% от стоимости на IPO. Непрофитная часть, которая занимается поддержкой opensourse, говорит, что люди из профитной части не очень компетентны
Основатель обругал CEO при всех и ушел с командой
В общем то грусть и печаль. Пострадают те, кто поверили в проект и могут остаться без поддержки
Тут же Andy подмечает, что смерть профитной части компании почти всегда приводит к смерти проекта, каким бы опенсурсным он не был (за очень редкими исключениями). Мало кто готов заниматься благотворительностью. Доработка и поддержка любой софтины - тяжелая работа
4. Как в январе 2023 крашнулась система NOTAM, предупреждающая пилотов об опасности.
Было нарушено расписание примерно 11000 рейсов (задержка/экстренная посадка)
Судя по всему, система не менялась с момента закупки в 80х годах. И скорее всего, держала не больше 50 RPS (что забавно в сравнении с текущими производительностями систем)
Причина ошибки - покоррапченные файлы. И на последок: бекап, из которого попытались восстановить систему, оказался тоже нарушенным. Вообще восстановление из бекапа - это очень важный сценарий, который стоит регулярно прогонять на своих бекапах, иначе защита от ваших бекапов на уровне иконок в машине, приклеенных на место разрыва подушки безопасности
И в целом - стоит меньше доверять надежности систем. Кто бы что не говорил - они падают. Даже у гигантов индустрии.
А гарантии отказоустойчивости - не всегда выполнимы (маркетологи баз данных Вам поклянутся об обратном 😊)
5. Венчур в стартапах по базам данных
Много денег поднято. Но учитывая ситуацию в мире, вполне возможны дальнейшие сокращения персонала
TileDB - 34m$ series B
SQreamDB - 45m$ Series C
Neon - 46m$ series B
MotherDuck - 52.5m$ series B
DBeaver - 5m$ seed round (вот этой штукой я пользуюсь, но пока не понятно, почему я должен захотеть заплатить)
🔥4👏1