Pull to refresh
  • by relevance
  • by date
  • by rating

Intel оптимизировала библиотеку Numpy под AVX-512, ускорив вычисления Python в 14—32 раза

ITSumma corporate blog Open source *Python *Software CPU

Расположение векторного регистрового файла (жёлтый) и целочисленного регистрового файла (красный) на процессорах Skylake. Блок векторных регистров AVX-512 зашит в жёлтой области

Компания Intel представила патч к библиотеке Numpy с оптимизациями, которые используют фирменный набор инструкций AVX-512.

Numpy — библиотека с открытым исходным кодом для языка программирования Python c поддержкой многомерных массивов (включая матрицы) и высокоуровневых математических функций. Numpy активно используется сообществом Python для реализации вычислительных алгоритмов — и эту библиотеку можно рассматривать в каком-то смысле как свободную альтернативу Matlab.
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Views 9.6K
Comments 12

Intel заставляет производителей матплат отключать поддержку AVX-512

ITSumma corporate blog Manufacture and development of electronics *Computer hardware Desktop PC's CPU

Блоки векторных инструкций AVX-512 на процессоре Core i9-12900K

Всем производителям материнских плат Z690 на процессорах Alder Lake пришло обновление микрокода от Intel, которое полностью запрещает использование инструкций AVX-512.

Физически модуль AVX-512 остался на ядрах P. Его можно было активировать через BIOS и повысить производительность в 14–32 раза в некоторых специфических задачах, отключив при этом малополезные ядра E. Теперь лазейку закрыли.
Читать дальше →
Total votes 67: ↑66 and ↓1 +65
Views 20K
Comments 100

На новых процессорах Intel запрещено смотреть диски Blu-ray Ultra HD

Parallels corporate blog Working with video *Copyright Computer hardware CPU


Если у вас на полке стоит коллекция дисков Blu-ray Ultra HD, то компания Intel подготовила неприятную новость. На последних моделях компьютеров с процессорам Intel 11-го и 12-го поколений вы эти диски посмотреть не сможете.

Дело в том, что из этих CPU удалили расширения Software Guard Extensions (SGX), которые необходимы для расшифровки DRM.
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Views 44K
Comments 152

Вышли компиляторы GCC 4.9.0 с множеством новых «фишек»

Open source *Compilers *
Якуб Елинек (Jakub Jelinek) от имени всех разработчиков свободных компиляторов GNU Compiler Collection из Фонда свободного ПО официально объявил о выпуске новой версии GCC 4.9.0.

«Один год и один месяц прошли с момента выпуска последней мажорной версии GNU Compiler Collection, — пишет Елинек, — так что пришло время объявить о новом основном релизе. GCC 4.9.0 несёт в себе важные новые функции, недоступные в GCC 4.8.x или предыдущих версиях GCC».

Среди самого главного можно отметить поддержку OpenMP 4.0, последней версии спецификаций программирования для многоядерных процессоров. Кстати говоря, в LLVM/Clang вообще отсутствует поддержка хоть какой-нибудь версии OpenMP.
Читать дальше →
Total votes 79: ↑70 and ↓9 +61
Views 27K
Comments 22

Приемы использования масочных регистров в AVX512 коде

Intel corporate blog High performance *Programming *Compilers *
В процессорах компании Intel на смену AVX2 приходит новый набор инструкций AVX512, в котором появилась концепция масочных регистров. Автор этой статьи уже несколько лет занимается разработкой версии библиотеки Intel Integrated Performance Primitives, оптимизированной для AVX512, и накопил довольно большой опыт использования AVX512 инструкций с масками, который было решено объединить в одну отдельную статью, поскольку само использование таких инструкций с масками позволяет упростить и ускорить код в дополнение к ускорению от двукратного увеличения ширины регистров.
далее несколько примеров использования AVX512 инструкций с масками
Total votes 19: ↑19 and ↓0 +19
Views 9.3K
Comments 14

Векторизация кода преобразования координат в пространстве на Intel® Xeon Phi™ с помощью низкоуровневых инструкций

Intel corporate blog Singularis Lab corporate blog High performance *Algorithms *

Введение


При решении задач моделирования движения объектов в трехмерном пространстве практически всегда требуется использование операций пространственных преобразований, связанных с умножением матриц преобразований и векторов. Для задачи N тел эта операция используется многократно для задания поворота и смещения тела относительно начала координат. Матрица пространственного преобразования имеет размерность 4х4, а размерность вектора, к которому применяется преобразование, соответственно 4x1. Рассмотрим оптимизацию выполнения такой операции с большим числом матриц и векторов под архитектуру Intel® Xeon Phi™.


Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 8.1K
Comments 5

Подводные грабли управления частотами процессоров Intel

System administration *
Translation

Во время сравнения нового серверного чипа Centriq от Qualcomm с имеющимися в наличии Intel Xeon поколения Skylake мною была замечена странная штука: производительность шифра ChaCha20-Poly1305 плохо масштабируется при добавлении ядер. Один поток работал на скорости примерно 2,89 Гбайт/с, а на 24 ядрах и при 48 потоках сумарная производительность составила всего лишь 35 Гбайт/с.


Неплохо, конечно, но я ожидал увидеть что-то вроде 69 Гбайт/с. 35 Гбайт/с это всего лишь 1,46 Гбайт/с на ядро, или около 50 % от производительности одного ядра. AES-GCM масштабируется в тех же условиях гораздо лучше, до примерно 80 % производительности одного ядра, что объясняется способностью процессора повышать частоту при нагрузке на одно ядро.


Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 15K
Comments 7

Что посмотреть на выходных? Обзор лучших докладов в свободном доступе. Часть вторая, JBreak 2017

JUG Ru Group corporate blog Java *Hadoop *

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


Вчерашняя статья про JPoint 2017 оказалась удивительно успешной. У неё почти не было комментариев, но на данный момент — 88 закладок. То есть статья попала в цель: люди добавляют в закладки и смотрят — ура. Буквально в первый час её пришел читать сам Сатана.


Сегодня мы будем действовать по старой схеме: я для вас отсматриваю подряд 10 докладов, делаю короткое описание содержимого, чтобы неинтересное можно было выбросить. Кроме того, с сайтов собираю ссылки на слайды и описания. Полученное сортирую и выдаю в порядке увеличения рейтинга — то есть в самом низу будет самый крутой доклад. Оценки — это не лайки на YouTube, а наша собственная оценочная система, она круче лайков.



Читать дальше →
Total votes 37: ↑33 and ↓4 +29
Views 14K
Comments 3

Intel добавит в CPU инструкции для глубинного обучения

Artificial Intelligence CPU

Некоторые из последних процессоров Intel поддерживают семейство векторных инструкций AVX-512. Они выполняются блоками по 512 бит (64 байта). Преимущество аппаратной поддержки таких больших инструкций в том, что за один такт процессор обрабатывает больше данных.

Если код загружается 64-битными словами (8 байт), то теоретически, если не брать в учёт другие факторы, можно ускорить его выполнение в восемь раз, если использовать инструкции AVX-512.
Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Views 22K
Comments 11

Новая библиотека x86 SIMD интринсиков — immintrin debug

Intel corporate blog High performance *Programming *Assembler *
С каждым новым поколением процессоров Intel появляются новые и все более сложные векторные инструкции. Хотя длина вектора (512 бит) в ближайшее время расти не будет, появятся новые типы данных и виды инструкций. Например, кто сможет с первого взгляда понять, что делает такой интринсик (и соответствующая ему инструкция процессора)?

Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in imm8.

__m512i _mm512_mask_ternarylogic_epi32 (__m512i src, __mmask8 k, __m512i a, __m512i b, int imm8)
FOR j := 0 to 15
    i := j*32
    IF k[j]
        FOR h := 0 to 31
            index[2:0] := (src[i+h] << 2) OR (a[i+h] << 1) OR b[i+h]
            dst[i+h]   := imm8[index[2:0]]
        ENDFOR
    ELSE
        dst[i+31:i] := src[i+31:i]
    FI
ENDFOR
dst[MAX:512] := 0

ОК, допустим, мы разобрались, как она работает. Следующий уровень сложности — отладка кода, интенсивно использующего такие интринсики.
под катом о новом средстве для отладки интринсиков
Total votes 29: ↑28 and ↓1 +27
Views 4K
Comments 0