Daniel Lemire’s blog

Оптимизирующие компиляторы дедуплицируют строки и массивы

При программировании может быть расточительно сохранять одни и те же постоянные данные снова и снова. Вы используете больше памяти, вы получаете доступ к большему количеству данных. К счастью, ваш оптимизирующий компилятор может помочь. Рассмотрим следующие две строки кода C: printf ( » Добрый день, профессор Джонс » ) ; printf ( » Добрый день, профессор …

Оптимизирующие компиляторы дедуплицируют строки и массивы Read More »

Связи науки и техники (16 сентября 2022 г.)

Привлекательные студентки получают более высокие оценки . Они теряют это преимущество, когда курсы переходят в онлайн. Исследовательская работа с большей вероятностью будет высоко оценена, если ее автор известен . В США заключенных намного больше, чем полицейских (три заключенных на каждого полицейского), в то время как в любой другой развитой стране соотношение обратное . Разжижение плазмы …

Связи науки и техники (16 сентября 2022 г.) Read More »

Связи науки и техники (12 сентября 2022 г.)

В стандартном наборе данных по исследованиям в области искусственного интеллекта десять процентов изображений неправильно помечены . Тем не менее современные алгоритмы обеспечивают точность классификации выше 90 % для одного и того же набора данных . (Фото: Лео Бойцов) Несмотря на лагеря перевоспитания и огромные травмы, семьи, которые жили хорошо до китайской социалистической революции, по-прежнему преуспевают …

Связи науки и техники (12 сентября 2022 г.) Read More »

Отлов ошибок дезинфицирующего средства программным путем

Языки C и C++ мало защищают от ошибок программиста. Ошибки не всегда появляются там, где вы ожидаете. Вы можете незаметно испортить содержимое своей памяти. Это может затруднить отслеживание ошибок. Чтобы решить эту проблему, я большой поклонник программирования на C и C++ с использованием дезинфицирующих средств. Они замедляют вашу программу, но, например, проверяют безопасность доступа к …

Отлов ошибок дезинфицирующего средства программным путем Read More »

Связи науки и технологий (7 августа 2022 г.)

Повышение производительности вычислений объясняет до 94% улучшений производительности в таких областях, как предсказание погоды, сворачивание белков и разведка нефти : информационные технологии являются движущей силой долгосрочного повышения производительности во всем обществе. Если мы перестанем улучшать наши вычисления, последствия могут быть ужасными. Коралловый покров Большого Барьерного рифа достиг самого высокого уровня с тех пор, как Австралийский …

Связи науки и технологий (7 августа 2022 г.) Read More »

Сравнение strtod с from_chars (GCC 12)

Читатель (Ричард Эбелинг) предложил мне пересмотреть старую запись в блоге: Разбор чисел с плавающей запятой в C++: бенчмаркинг strtod и from_chars . Тогда я сообщил, что переход с strtod на from_chars в C++ для разбора чисел может привести к увеличению скорости (на 20%). Код почти такой же, мы идем от… символ * строка = » …

Сравнение strtod с from_chars (GCC 12) Read More »

Округление вектора направления до 8-стороннего компаса

Современные игровые контроллеры могут указывать в самых разных направлениях. Разработчики игр иногда хотят преобразовать направление джойстика, чтобы получить движение в 8 направлениях . Типичное предлагаемое решение состоит в том, чтобы вычислить угол, округлить его и затем вычислить вектор направления. двойной угол = atan2 ( y , x ) ; угол = ( int ( округление …

Округление вектора направления до 8-стороннего компаса Read More »

Связи науки и техники (23 июля 2022 г.)

По сравнению с 1800 годом мы едим меньше насыщенных жиров и гораздо больше переработанных продуктов и растительных масел , и это не кажется нам полезным: Насыщенные жиры из животных источников снизились, а полиненасыщенные жиры из растительных масел выросли. Неинфекционные заболевания (НИЗ) росли в двадцатом веке параллельно с увеличением потребления обработанных пищевых продуктов, включая сахар, рафинированную …

Связи науки и техники (23 июля 2022 г.) Read More »

Как быстро вы можете преобразовать float в double (и обратно)?

Многие языки программирования имеют два двоичных типа с плавающей запятой: float (32-разрядный) и double (64-разрядный). Это отражает тот факт, что большинство процессоров общего назначения изначально поддерживают оба типа данных. Часто нам нужно конвертировать между двумя типами. И процессоры ARM, и x64 могут выполняться в одной недорогой инструкции. Например, системы ARM могут использовать команду fcvt . …

Как быстро вы можете преобразовать float в double (и обратно)? Read More »

Более быстрая фильтрация чисел с помощью SVE на процессорах Amazon Graviton 3

Процессоры, грубо говоря, делятся на два больших семейства: процессоры x64 от Intel и AMD и процессоры ARM от Apple, Samsung и многих других поставщиков. В течение долгого времени процессоры ARM занимали в основном рынок встроенных процессоров (компьютер, на котором работает ваш домашний холодильник), а «большие процессоры» почти исключительно принадлежали процессорам x64. Как сообщается, генеральный директор …

Более быстрая фильтрация чисел с помощью SVE на процессорах Amazon Graviton 3 Read More »