Pull to refresh
0
0
Send message

Вычисляем π на первом процессоре от Intel — 4004

Reading time10 min
Views18K

Как-то мне пришла в голову мысль о том, насколько же быстрее современные процессоры по сравнению с ранними экземплярами. Да, можно размышлять об этом эмпирически - зная тактовую частоту и особенности микроархитектуры (как устроен конвейер, сколько есть ALU, и т.д.), можно прикинуть производительность Intel 4004. Пусть и не в FLOPS'ах, ибо нативная поддержка чисел с плавающей запятой появилась позже. Но это будет весьма грубая прикидка, так как у этого процессора есть несколько интересных черт: разрядность только 4 бита (а не 64, как у большинства современных машин), очень скудный набор инструкций (нет даже AND'a и XOR'a!) и ограничения переферии (в частности памяти не так уж и много).

Поэтому я решил исследовать вопрос на практике. В качестве бенчмарка выбор пал на вычисления числа π. В конце-то концов, даже ENIAC в дремучем 1949 году справился с этой задачей! [2]

Читать далее

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Reading time39 min
Views429K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →

Компьютер на логических микросхемах: исполнение инструкций

Reading time9 min
Views11K

Вторая статья про самодельный компьютер. Сегодня я расскажу вам про кодирование и исполнение инструкций, а также немного про программирование.

Читать далее

ruDALL-E: генерируем изображения по текстовому описанию, или Самый большой вычислительный проект в России

Reading time10 min
Views172K

2021 год в машинном обучении ознаменовался мультимодальностью — активно развиваются нейросети, работающие одновременно с изображениями, текстами, речью, музыкой. Правит балом, как обычно, OpenAI, но, несмотря на слово «open» в своём названии, не спешит выкладывать модели в открытый доступ. В начале года компания представила нейросеть DALL-E, генерирующую любые изображения размером 256×256 пикселей по текстовому описанию. В качестве опорного материала для сообщества были доступны статья на arxiv и примеры в блоге

С момента выхода DALL-E к проблеме активно подключились китайские исследователи: открытый код нейросети CogView позволяет решить ту же проблему — получать изображения из текстов. Но что в России? Разобрать, понять, обучить — уже, можно сказать, наш инженерный девиз. Мы нырнули с головой в новый проект и сегодня рассказываем, как создали с нуля полный пайплайн для генерации изображений по описаниям на русском языке.

В проекте активно участвовали команды SberAI, SberDevices, Самарского университета, AIRI и SberCloud.

Мы обучили две версии модели разного размера и дали им имена великих российских абстракционистов – Василия Кандинского и Казимира Малевича:

1. ruDALL-E Kandinsky (XXL) с 12 миллиардами параметров;

2. ruDALL-E Malevich (XL), содержащая 1,3 миллиарда параметров.

Некоторые версии наших моделей доступны в open source уже сейчас:

1. ruDALL-E Malevich (XL) [GitHub, HuggingFace]

2. Sber VQ-GAN [GitHub, HuggingFace]

3. ruCLIP Small [GitHub, HuggingFace]

4. Super Resolution (Real ESRGAN) [GitHub, HuggingFace]

Две последние модели встроены в пайплайн генерации изображений по тексту (об этом расскажем ниже).

Версии моделей ruDALL-E Malevich (XL), ruDALL-E Kandinsky (XXL), ruCLIP Small, ruCLIP Large, Super Resolution (Real ESRGAN) также скоро будут доступны в DataHub.

Обучение нейросети ruDALL-E на кластере Christofari стало самой большой вычислительной задачей в России: 

1. Модель ruDALL-E Kandinsky (XXL) обучалась 37 дней на 512 GPU TESLA V100, а затем ещё 11 дней на 128 GPU TESLA V100 — всего 20 352 GPU-дней;

2. Модель ruDALL-E Malevich (XL) обучалась 8 дней на 128 GPU TESLA V100, а затем еще 15 дней на 192  GPU TESLA V100 – всего 3 904 GPU-дня.

Таким образом, суммарно обучение обеих моделей заняло 24 256 GPU-дней.

Разберём возможности наших генеративных моделей.

Читать далее

Змей и дротик. Путь от михраба до квазикристаллов

Reading time8 min
Views6.9K

В 2020 году половину Нобелевской премии по физике получил Роджер Пенроуз. Премия была выдана с формулировкой «За открытие того, что образование чёрных дыр с необходимостью следует из общей теории относительности». Это произошло более чем через два года после смерти Стивена Хокинга, который наверняка бы получил эту премию, если бы дожил. Но она досталась Пенроузу (род. 8.08.1931) – человеку на 11 лет старше Хокинга, его коллеге и другу, вскоре перешагнувшему девяностолетний рубеж. После 2015 года я не могу избавиться от мысли, что Нобелевская премия (особенно по литературе) изживает себя, как и олимпийские игры, но как раз Роджер Пенроуз является одним из тех гранинских «зубров», который много ранее заслужил несуществующую Нобелевскую премию по математике. Я был причастен к переводу его книги «Мода, вера, фантазия» на русский язык и именно в тот период познакомился с сумрачным гением и скверным характером этого человека, а также с дивными мирами, рождающимися у него в голове. Пенроуз как никто из наших современников выразил платоновские идеи о высшем мире идеальных фигур, воплощения которых когда-нибудь найдутся и в реальном мире. Именно об этой грани его исследований пойдет речь под катом: о геометрических паркетах, мозаике Пенроуза и квазикристаллах Шехтмана.

Читать далее

Скучные числа

Reading time51 min
Views21K

1 / 0


При освоении программирования встречается один смешной спор, начинать адресацию элементов в массиве с единицы или с нуля. С одной стороны, если у тебя один элемент в массиве, то и номер у него должен быть равен единице. С другой стороны, когда выбираешь куда поместить первый элемент, то надо подыскать место, равное количеству элементов до помещения — нулевое. То есть, чему равен адрес последнего элемента — количеству элементов до помещения или после? — Вот в чём здесь вопрос.

Но, как бы то ни было, для себя я просто разделили на два понятия: индекс и номер. Индекс относится уже не к элементу, а к его месту, к величине отступа, которая для элемента номер один равна нулю. Элемент с индексом ноль — первый. Всё просто.

Соревнование между нулём и единицей может быть описано более детально.

Заметка длинная, разделена на главы
1 / 0
Зря-зря
Спуск
Простые числа
Золотая середина
Предыдущее и следующее
Уровни
Что было до нуля
Вообще без нуля

Часть вторая:
Двойные функции
Двойные числа
Биномиальная свёртка
Происхождение чисел Бернулли
Откатная функция
Пи

Функция состоит не только из нулей
Суммируя
Умножая
Симметрия Дзеты
Ось
Откуда там вообще нули?

Исторически счёт принято начинать с единицы, и это оправдано, так как отводит нулю его место — то что было в самом начале, до начала счёта. И этим указывает, что такое сам счёт. Это нахождение элемента между предыдущим и предстоящим. «Предыдущий» в начале счёта ноль, «предстоящий» элемент тоже вполне определён. Основное действие — то что понимается под «предыдущим» меняется на то что получено, и счёт можно продолжать.
Читать дальше →

Как согласовать полёт зонда в стратосферу (с чем мы столкнёмся на практике при запуске)

Reading time6 min
Views37K
12 апреля мы собираемся запустить стратосферный зонд с небольшим сервером, откуда на CDN внизу будет передаваться наша страница. Входящий канал — низкоорбитальные спутники связи, исходящий — радиопоток на частотах любительского диапазона (телеметрия и управление) и Wi-Fi (видео и данные).


Проблема с запуском в том, что это неуправляемый летательный аппарат. В смысле, это просто шар с гелием, к которому прицеплено несколько килограммов железа. И это важно, потому что это железо может стукнуться о чей-нибудь самолёт или упасть на чью-нибудь территорию. Муниципалитетам, например, не очень нравится, когда на территорию его объектов такое падает. Заповедникам тоже. А Росатому уж вообще очень не нравится.

На борту будет камера, то есть это получится аэрофотосъёмка. Разрешение на неё надо получать у Федеральной службы безопасности.

Это пиковый полёт, то есть мы поднимаемся до рабочей высоты, быстро выполняем миссию и спускаемся на посадку. Зонд обычно уносит на 100-150 километров от точки старта по направлению ветра, дующего на высоте от земли до 30 километров. Выше 20 км как правило пропадает турбулентность, да и плотность воздуха там в 100 раз меньше (на съёмке видно характерную границу атмосферы), поэтому полёт там становится более плавным. Лететь мы можем хоть до Владивостока, но чем больше траектория тем сложнее получить официальное согласование полёта, что заставляет нас максимально сокращать полёт.
Читать дальше →

Самодельный стратостат

Reading time28 min
Views21K

result_lowres


Допустим, вы интересуетесь космосом, но космос для вас недоступен. Выше 10км не подняться, а посмотреть "что там?" очень хочется. По классификации NASA — нижняя граница космоса начинается на 100км от поверхности Земли. Эта статья будет не совсем про космос, но про возможность создания своего стратосферного зонда с нуля. Я много видел примеров успешного запуска и несколько статей на Хабре, но почти все они — это отчеты. Я же хочу оставить статью, которая сможет претендовать на "complete guide" для юных покорителей. Запаситесь терпением и безлимитным интернетом — будет много текста, картинок и даже пару видео. Это был долгий путь для нас, но я намерен сделать его не таким изнурительным для всех желающих. Поехали?

Читать дальше →

Самодельный стратостат. Часть 2

Reading time20 min
Views18K

Vostok-3b view


Long, long time ago… Нет, не так. 4 месяца назад я рассказал вам, как из клея и резиновых сапог создать с нуля свой стратостат с телеметрическим модулем и видеокамерой. Я так же описал наш опыт запуска и поиска этого метеозонда, обозначив несколько возникших проблем. Что ж. Мы анализировали, анализировали и доанализировались до четвертого шара. И сейчас я расскажу вам, что произошло за это время, почему он четвертый, и где пропавшие два. Эта часть будет менее технической, т.к. изменений конструкции почти не было, но те что были — имеют значение. Если вы вне контекста, то эту часть советую читать только после прочтения первой (хотя бы технических разделов). Ссылка на первую часть ниже. Будет много фото, видео и графиков. Поехали?

Читать дальше →

CFD 3D: простой симулятор воды

Reading time12 min
Views65K




Введение


CFD (Computational fluid dynamics) — вычислительная гидродинамика.
Используется для моделирования разных процессов в жидкостях, а также разных типов жидкостей (например мёд, нефть — это все жидкости).

В данном посте рассматривается 2D симулятор обычной воды с открытой поверхностью и препятствиями (для 3D версии все аналогично + доступны исходники).
Поверхность воды представляет собой границу, отделяющую воду от воздуха.Это позволяет моделировать волны, падение капель и т.д.
Читать дальше →

Бесплатные сервисы для разработчиков — огромный список

Reading time8 min
Views60K

Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. «Бесконечное» время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

Недавно мы обсуждали эту тему в статье «Боль разработчика: “Никогда не давайте пользователям бесплатный тариф”». Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен — приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.
Читать дальше →

Однобитный компьютер

Reading time6 min
Views40K

Картинка для привлечения внимания:

Внимание! Под катом много картинок!

В этой статье будет описано проектирование и создание однобитного компьютера. Всем кто заинтересовался, добро пожаловать под кат.

Читать далее

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views69K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

Мы попытались учесть все эти пункты и представить комьюнити свое открытое некоммерческое решение, удовлетворяющее этим критериям. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на каких-то cherry picked примерах — вы можете оценить все сами, пройдя по ссылке.

Как «раскирпичить» STM32

Reading time3 min
Views57K

Здравствуйте! Меня зовут Дмитрий Руднев. В этой публикации я поделюсь своим горьким опытом.

В современной разработке широко используются микроконтроллеры STM32. Они обладают неплохим соотношением цена/производительность, вокруг них сложилась развитая «экосистема». Для прошивки этих микроконтроллеров и внутрисхемной отладки обычно используют интерфейс Serial Wire (SWD).

В процессе отладки бывает всякое. Не беда, если STM32 после прошивки ведёт себя неадекватно. Обидно, если при этом к нему не удаётся подключиться.

На этом месте не надо впадать в отчаяние, т.к. «убить насмерть» STM32 в процессе программирования непросто, и его работоспособность можно восстановить штатными средствами.
Как это сделать, читайте дальше

Создание образа Мона Лизы в Игре «Жизнь»

Reading time10 min
Views11K

Клеточные автоматы представляют большой интерес и являются предметом исследования во многих областях, включая математику, физику, биологию, программирование и прочие. В статье мы разберем базовую реализацию и оптимизацию алгоритма для поиска состояния Жизни, из которого в течение нескольких поколений будет генерироваться образ Мона Лизы.

Нефтянка для инженеров, программистов, математиков и широких масс трудящихся, часть 5

Reading time11 min
Views12K

Сегодня мы поговорим о двух частных областях, где без моделирования не обойтись, расскажем, как инженеры умеют разбираться в показаниях датчиков насосов, кранов и квадрокоптеров и выясним, наконец, в каких единицах измеряется вес. Любая скважина – это объект капитального строительства, как здание или завод, который требует капитальных вложений, планирования, периодического и капитального ремонта, и только при удовлетворении этих требований она сможет вернуть затраты на своё строительство и принести прибыль как в энергетическом, так и в денежном выражении. Жизнь скважины напрямую связана с периодически проводимыми на ней технологическими ремонтными операциями. Есть операции, как, например, спуск-подъём и замена труб или насоса, которые нуждаются только в наличии чёткого плана и соблюдении техники безопасности ремонтной бригадой. А есть операции особенные, требующие глубокой инженерной проработки и дополнительного моделирования, и без этих действий жизнь скважины может просто закончиться. А скважина, напомню – это большое вложение средств и энергии.  
Читать дальше →

Подключаем дисплей SPI LCD  ILI9341 к одноплатному компьютеру Banana Pi BPI-M64 или любому другому на ОС Armbian

Reading time12 min
Views49K
LCD SPI ILI9341 Banana Pi BPI-M64

Пост содержит инструкцию как подключить TFT-LCD дисплей на популярном контроллере ILI9341 к одноплатному компьютеру на ОС Armbian с помощью дерева устройств (Device Tree overlays) без танцев с бубном. В сети Интернет много материала как подключать различные LCD экраны к Raspberry Pi. Но что если у вас нет Raspberry Pi, а хочется подключить недорогой LCD экран на SPI интерфейсе? Все что вам необходимо, это любая плата с поддержкой ОС Armbian. В каталог поддерживаемых плат ОС Armbian входят платы: Asus, Pine64, Hardkernel, Orange Pi, Banana Pi, и т.д. На данный момент в каталоге более 114 моделей плат, объявлена поддержка различного оборудования из коробки. Доступны для подключения: 4G/LTE модемы, USB Wi-Fi, USB Bluetooth, USB Ethernet, сканеры DVB-тюнеры и т.д. К всем этим платам можно легко подключить  SPI LCD дисплей ILI9341, как это реализовать прошу под кат.

Как сделать ёлку, если ты математик

Reading time1 min
Views13K

Весь рисунок - это набор математических функций от двух аргументов, x и y. Все они так или иначе базируются на SDF. Для рисования графиков использовался desmos.com.

Читать далее

Большое тестирование процессоров различных архитектур

Reading time19 min
Views38K

Предисловие


Попытка сравнить производительность процессоров на разнородных архитектурах x86-64, e2k (Эльбрус), mips и arm.


Все тесты написаны на языке C (взяты из исходных кодов, которые я не модифицировал и не оптимизировал) и компилируются под конкретную архитектуру с использованием конкретного компилятора для данной архитектуры и тесты производятся на различных дистрибутивах операционных систем на ядре Linux. На результаты может влиять как тип так и версия компилятора, а также режим оптимизаций. Хотя даже таким способом можно примерно сравнить производительность процессоров на разных архитектурах.


P.S.: Знаю, что большинство тестов для очень старых компьютеров, но они работают везде. Что даже очень неплохо.

Читать дальше →

Какое пламя горячей? ФАКЕЛЬНИК

Reading time14 min
Views18K
Хомяки приветствуют вас, друзья!

Сегодняшний выпуск будет посвящен любопытной электронной свече, пламя которой имеет необычную природу происхождения. Генератор факельного разряда, второе народное название которого «Факельник». Их существует несколько видов, конкретно этот собран на обыкновенном транзисторе. В ходе рассказа узнаем как настроить такую систему и рассмотрим факторы которые, могут влиять на работу устройства. Параллельно будем экспериментировать с высокочастотными полями, зажигать экзотические лампочки, передавать энергию без проводов и в общем все как вы любите. Под конец попробуем довести генератор до критического состояния и посмотрим сколько он проработает.



Эта история начинается с одного человека, который написал мне в инстаграме что-то типа:
Привет, я знаю как настраивать «Факельник»
Как раз в это время я пил пивас на кухне и думаю…
Да, а чего это я не знаю как настраивать «Факельник», и начал разбираться

В принципе это устройство довольно простое, но из-за того что оно работает на высоких частотах свыше 10 МГц и довольно больших токах, в его основе должны лежать несколько специфические радиодетали.

Схема состоит всего из шести отдельных элементов и хомяк с любопытством спешит их изучить. Слева направо. Резонатор, дроссель по питанию, контурная индуктивность на керамике и контурный серый конденсатор, MOSFET транзистор на радиаторе и коричневый слюдяной конденсатор КСО. Эти кадры «как вы понимаете» снимались в самом конце, когда всё было настроено и резонансы были подогнаны друг к другу.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity