За последнее десятилетие R прошёл большой путь: от нишевого (как правило, академического) инструмента до мейнстримной «большой десятки» самых популярных языков программирования. Такой интерес вызван многими причинами, среди которых и принадлежность к open source, и деятельное коммьюнити, и активно растущий сегмент применения методов machine learning / data mining в разнообразных бизнес-задачах. Приятно видеть, когда один из твоих любимых языков уверенно завоёвывает новые позиции, и когда даже далёкие от профессиональной разработки пользователи начинают интересоваться R. Но здесь есть, однако, одна большая проблема: Читать полностью »
Рубрика «оптимизация» - 30
Низкоуровневая оптимизация и измерение производительности кода на R
2016-11-30 в 9:59, admin, рубрики: open source, R, высокая производительность, оптимизация, Программирование, производительностьМониторинг и настройка сетевого стека Linux: получение данных
2016-11-21 в 9:43, admin, рубрики: linux kernel, Блог компании Mail.Ru Group, давайте кратко пробежимся, Настройка Linux, никто не читает теги, оптимизация, Сетевые технологии, системное администрированиеВ этой статье мы рассмотрим, как осуществляется приём пакетов на компьютерах под управлением ядра Linux, а также разберём вопросы мониторинга и настройки каждого компонента сетевого стека по мере движения пакетов из сети в приложения пользовательского пространства. Здесь вы найдёте много исходного кода, потому что без глубокого понимания процессов вы не сможете настроить и отслеживать сетевой стек Linux.
Также рекомендуем ознакомиться с иллюстрированным руководством на ту же тему, там есть поясняющие схемы и дополнительная информация.
2. Обзор проблематики
3. Подробный разбор
3.1. Драйвер сетевого устройства
3.2. SoftIRQ
3.3. Подсистема сетевого устройства в Linux
3.4. Механизм управления принимаемыми пакетами (Receive Packet Steering (RPS))
3.5. Механизм управления принимаемыми потоками (Receive Flow Steering (RFS))
3.6. Аппаратно ускоренное управление принимаемыми потоками (Accelerated Receive Flow Steering (aRFS))
3.7. Повышение (moving up) сетевого стека с помощью netif_receive_skb
3.8. netif_receive_skb
3.9. Регистрация уровня протокола
3.10. Дополнительная информация
4. Заключение
Оптимизация нейросетевой платформы Caffe для архитектуры Intel
2016-11-18 в 11:00, admin, рубрики: Intel AVX, Intel MKL, Intel Modern Code, intel xeon, openmp, Блог компании Intel, векторизация, высокая производительность, машинное обучение, оптимизация, параллельные вычисления, метки: Intel Modern CodeСовременные программы, претендующие на звание эффективных, должны учитывать особенности аппаратного обеспечения, на котором они будут исполняться. В частности, речь идёт о многоядерных процессорах, например, таких, как Intel Xeon и Intel Xeon Phi, о больших размерах кэш-памяти, о наборах инструкций, скажем, Intel AVX2 и Intel AVX-512, позволяющих повысить производительность вычислений.
Еле удержались, чтобы не пошутить про руссиано)
Вот, например, Caffe – популярная платформа для разработки нейронных сетей глубокого обучения. Её создали в Berkley Vision and Learning Center (BVLC), она пришлась по душе сообществу независимых разработчиков, которые вносят посильный вклад в её развитие. Платформа живёт и развивается, доказательство тому – статистика на странице проекта в GitHub. Caffe называют «быстрой открытой платформой для глубокого обучения». Можно ли ускорить такой вот «быстрый» набор инструментов? Задавшись этим вопросом, мы решили оптимизировать Caffe для архитектуры Intel.
Читать полностью »
Выпуск Rust 1.13
2016-11-14 в 6:52, admin, рубрики: eh?, Rust, компилятор, оптимизация, Программирование, системное программированиеКоманда Rust рада представить выпуск Rust 1.13.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.
Как обычно, вы можете установить Rust 1.13.0 с соответствующей страницы официального сайта, а также ознакомиться с подробным списком изменений в 1.13.0 на GitHub. В этот выпуск вошло 1448 патчей.
Это была по-настоящему горячая пора в Rust. Мы участвовали в трёх конференциях подряд — RustConf, RustFest и Rust Belt Rust. Было классно увидеть так много любителей Rust; со многими мы встретились впервые! Мы много думали о будущем, разрабатывали план на 2017 и создавали инструменты, нужные нашим пользователям.
И несмотря на всё это, мы собрали новый выпуск с кучей новых крутых фишек.
Что вошло в стабильную версию 1.13
Выпуск 1.13 включает долгожданный оператор ?
, ускорение компиляции, добавление
некоторых возможностей в Cargo и стандартную библиотеку. Также этот выпуск привносит множество небольших улучшений в документацию и сообщения об ошибках. Это результат работы многих людей, и они не упоминаются в замечаниях к выпуску индивидуально.
Первые шаги в оптимизации и полировке игры на Unity3d
2016-11-11 в 14:14, admin, рубрики: C#, Mono, Splash Racing, unity3d, оптимизацияПосле того как я закончил мой первый проект, пришла мысль о портировании его на мобильные устройства или хотя бы запуске на встроенном GPU. Во всех гайдах по оптимизации, в одном из первых советов вам сообщат, что не стоит переживать о производительности заранее, начинайте оптимизировать, после того как все закончите, и вы постепенно приведете все в порядок. Так и я, выпустив изначально игру на десктоп, решил, что никогда не будет поздно оптимизировать ее под мобильные устройства. К сожалению, мне не удалось в полной мере достичь поставленной цели, потому как, похоже, что мобильные игры следует с самого начала разрабатывать с прицелом на слабое железо. На данный момент, для дальнейшей оптимизации под мобильные платформы я вижу только необходимость серьезно переделать геймплей и дизайн игрового мира. Однако и в текущем варианте получен ценный опыт оптимизации под Unity3d и результирующий прирост производительности более чем в 300% на интегрированном GPU. Читать полностью »
Правила хорошего вкуса от Линуса Торвальдса. Делаем код быстрее, проще и понятнее
2016-10-28 в 10:53, admin, рубрики: C, linux, Блог компании RUVDS.com, Линус Торвальдс, оптимизация, Программирование, Разработка под Linux«Вкус — это способность судить о прекрасном»
И. Кант
Дирк Хондел, один из тех, кто стоял у истоков Linux, однажды сказал о создателе Linux Линусе Торвальдсе: «Линус не только блестящий программист: у него хороший вкус. Торвальдс находит простые и разумные пути решения проблем, умеет всё «разложить по полочкам». Сложные вещи он делает простыми. По-моему, это и есть главное отличие превосходного программиста от просто хорошего».

В недавнем интервью, примерно на 14-й минуте, Линус Торвальдс коснулся темы «хорошего вкуса в программировании». Хороший вкус? Ведущий попросил его остановиться на этом подробнее, и Линус, пришедший не с пустыми руками, показал пару слайдов.
Читать полностью »
Пошаговый алгоритм работы с ASO
2016-10-28 в 0:03, admin, рубрики: App Store, App Store Optimization, AppDiamond, aso, Google Play, growth hacking, Блог компании ВШБИ — Менеджмент игровых интернет-проектов, интернет-маркетинг, оптимизация, поисковая оптимизация, продвижение игр, метки: AppDiamondApp Store Optimization – самый недооцененный фактор при продвижении мобильного приложения.
У этого есть две причины:
1. По последним данным 60% от общего кол-ва органических (бесплатных) установок приложения получают именно из поиска в сторах.
2. Средний CTI (конверсия из просмотра страницы в установку) по рынку составляет 25%. Визуальная оптимизация странички приложения позволяет поднять CTI до 40-50%, что соответственно уменьшает стоимость установки в 2 раза.
В данной статье мы распишем каждый из шагов по ASO, как его настраивать, покажем примеры как нужно и как не нужно делать. Статья будет полезна новичкам в сфере ASO а также разработчикам, CTI которых ниже 20%.
Если интересно, добро пожаловать под кат.
Нейросеть Google произвольно стилизует изображения в реальном времени
2016-10-27 в 9:54, admin, рубрики: Google, open source, искусственный интеллект, нейросеть, обучение нейросети, оптимизация, стилизация
Нейросеть от Google накладывает на фотографию любой из 32 обученных стилей (здесь показаны пять). Программа нетребовательна к железу и памяти. Код опубликуют в ближайшее время
Синтез текстур с переносом стиля с одного изображения на другое — известная техника, которой 15 лет. Впервые она описана в статье «Аналогии по изображению» группы исследователей из Microsoft Research для конференции SIGGRAPH 2001, а также в статье «Подбивка изображения для текстурного синтеза и переноса» от Mitsubishi Electric Research и Калифорнийского университета в Беркли в том же 2001 году. Сейчас трудно сказать, какая из них появилась раньше.
В 2015 году техника получила вторую жизнь, когда к синтезу изображений с переносом стиля подключились нейросети. Это случилось после выхода научной работы «Нейроалгоритм художественного стиля» Гэтиса, Эккера и Бетге из университета Эберхарда-Карла в Тюбингене, Германия (статья на Geektimes). Работа настолько впечатляющая, что описанный алгоритм вскоре реализовали в нескольких компьютерных программах для потребительского рынка, в том числе в мобильных приложениях вроде российского Prisma (июнь 2016-го).
Читать полностью »
Советы и рекомендации по работе с Unity3D
2016-10-14 в 13:11, admin, рубрики: C#, monodevelop, unity3d, оптимизация, Программирование, разработка игр, советы и рекомендацииЯ опубликовал первую статью «50 советов по работе с Unity» 4 года назад. Несмотря на то, что бóльшая её часть всё ещё актуальна, многое изменилось по следующим причинам:
- Unity стал лучше. Например, теперь я могу доверять счётчику FPS. Возможность использования Property Drawers снизила необходимость написания пользовательских редакторов (Custom Editors). Способ работы с префабами стал меньше требовать заданных встроенных префабов (nested prefabs) и их альтернатив. Скриптуемые объекты стали более дружелюбными.
- Улучшилась интеграция с Visual Studio, отладка стала намного проще и уменьшилась потребность в «обезьяньем» дебаггинге.
- Стали лучше сторонние инструменты и библиотеки. В Asset Store появилось очень много ассетов, упрощающих такие аспекты, как визуальная отладка и логирование. Большая часть кода нашего собственного (бесплатного) плагина Extensions описана в моей первой статье (и многое из него описано здесь).
- Усовершенствован контроль версий. (Но, может быть, я просто научился использовать его более эффективно). Например, теперь не нужно создавать множественные или резервные копии для префабов.
- Я стал более опытным. За последние 4 года я поработал над многими проектами в Unity, в том числе над кучей прототипов игр, завершёнными играми, такими как Father.IO, и над нашим основным ассетом Unity Grids.
Эта статья является версией первоначальной статьи, переработанной с учётом всего вышеперечисленного.
Читать полностью »
ГОСТ Р 34.12 ’15 на SSE2, или Не так уж и плох Кузнечик
2016-10-11 в 16:38, admin, рубрики: assembly, C, sse2, Алгоритмы, блочный шифр, ГОСТ Р 34.12-2015, криптография, оптимизацияНа Хабре уже как минимум дважды упоминался новый отечественный стандарт блочного шифрования ГОСТ Р 34.12 2015 «Кузнечик», ru_crypt в своем посте рассмотрел основные механизмы и преобразования нового стандарта, а sebastian_mg занимался пошаговой трассировкой базового преобразования. Но многие вопросы остались без ответа. Насколько быстр новый ГОСТ? Можно ли его оптимизировать, эффективно реализовать, ускорить аппаратно?
