Набор инструкций Intel Streaming SIMD Extensions 4 для процессоров x86.
1 ответ

Установка TensorFlow из источников, на Windows 10

Я уже установил tenorflow-GPU, и он работает нормально. Теперь я хочу установить tenorflow-gpu из исходного кода, чтобы воспользоваться преимуществами набора команд AVX и SSE4.2-1.0, учитывая мою конфигурацию системы ниже; Процессор: Dual Intel Xeon…
11 май '17 в 13:25
1 ответ

Как скопировать байты в регистр xmm0

У меня есть следующий код, который работает нормально, но кажется неэффективным, учитывая конечный результат, требующий только данные в xmm0 mov rcx, 16 ; get first word, up to 16 bytes mov rdi, CMD ; ...and put it in CMD mov rsi, CMD_BLOCK @@: lods…
18 сен '16 в 01:16
1 ответ

Как получить char с двумя строками, сравнивая таблицу с SSE 4.2?

Как получить char с двумя строками, сравнивая таблицу со встроенными SSE 4.2 в C? _mm_cmpistrm возвращает маску важных битов, то есть агрегирует функцию на символе по сравнению с результатом обработки таблицы. __m128i _mm_cmpistrm ( __m128i a, __m12…
23 апр '12 в 14:11
3 ответа

Как загрузить 96 бит из памяти в регистр XMM?

Скажем, у меня есть указатель на память в rsiи я хотел бы загрузить 12-байтовое значение, указанное в младшие 96 бит xmm0, Мне все равно, что происходит с старшими 32 битами. Какой эффективный способ сделать это? (Дополнительный вопрос: лучшее, что …
12 апр '16 в 04:04
0 ответов

Встроенный pcmpistri не работает в gcc

Я пытаюсь написать версию strcmp, которая использует преимущества новых инструкций SSE4.2, использующих встроенные функции GCC. Это код, который я до сих пор: #include <stdio.h> #include <smmintrin.h> int main(int argc, char const *argv[…
16 май '17 в 18:02
3 ответа

Сравните строки по оберткам SSE4

Мне нужно быстро сравнить две строки на машине с поддержкой SSE4. Как я могу сделать это без написания ассемблерных вставок? Некоторые обертки, как long long bitmask = strcmp(char* a, char* b) было бы идеально.
13 май '12 в 20:19
1 ответ

Получение минимального короткого значения в векторе __m128i с SSE?

Этот вопрос кажется похожим на Получение максимального значения в векторе __m128i с SSE? но с шортами и минимумом вместо целого + максимум. Вот что я придумал: typedef short int weight; weight horizontal_min_Vec4i(__m128i x) { __m128i max1 = _mm_shu…
17 фев '15 в 12:52
0 ответов

Является ли _mm_load_ps требованием для 128-битной выровненной структуры?

У меня есть настройка векторной структуры, похожая на эту: она выровнена на 128 бит, как и тип __m128. struct Vector3 { union { float v[4]; struct { float x,y,z,w; } } } Я использую инструкцию продукта SSE 4.1 Dot _mm_dp_ps. Требуется ли использоват…
02 фев '15 в 05:42
1 ответ

Поддерживает ли AVX или AVX2 256-битные строковые инструкции и mullo для unsigned short?

Я исследовал строковые инструкции, которые поддерживаются в AVX или же AVX2 ISA, но я не могу найти какую-либо инструкцию сравнения строк 256 бит, как SSE4.2 Если есть сравнение строк, которое я не могу найти, где я могу их найти? В противном случае…
20 апр '16 в 08:33
3 ответа

Оптимальное 8-битное сравнение SSE без знака

Я пытаюсь найти наиболее удобный способ выполнения 8-битных беззнаковых сравнений с использованием SSE (до SSE 4.2). Наиболее распространенный случай, над которым я работаю, это сравнение для> 0U, например _mm_cmpgt_epu8(v, _mm_setzero_si128()) // #…
20 ноя '15 в 10:26
1 ответ

Быстрый компактный регистр с использованием sse

Я пытаюсь выяснить, как использовать sse _mm_shuffle_epi8 для сжатия 128-битного регистра. Допустим, у меня есть входная переменная __m128i target который в основном 8 16-бит, обозначается как: a[0], a[1] ... a[7]. // each slot is 16 bits мой вывод …
09 сен '13 в 22:46
1 ответ

Насколько быстрее строковые инструкции SSE4.2, чем SSE2 для memcmp?

Вот мой ассемблер кода Можете ли вы встроить его в C++ и проверить по SSE4? На скорости Мне бы очень хотелось увидеть, как шагнуло в развитие SSE4. Или его совсем не волнует? Давайте проверим (у меня нет поддержки выше SSSE3) { sse2 strcmp WideChar …
16 окт '17 в 04:07
1 ответ

Как изменить набор команд ЦП, который VirtualBox эмулировал для гостевой ОС, например отключить набор инструкций SSE4.2?

Чего я хочу добиться, так это отключить набор инструкций SSE4.2 для ЦП, который VirtualBox эмулировал для моей гостевой ОС Linux для целей отладки, даже если реальный ЦП поддерживает набор инструкций SSE4.2, на котором основан VirtualBox. Я ссылался…
10 сен '18 в 02:15
1 ответ

Создайте Dockerfile, который компилирует двоичный файл Tensorflow для использования: инструкции SSE4.1, SSE4.2 и AVX

Итак, одна из составляющих докера - легко развернуть среду для тестирования программного обеспечения, верно? Кто-нибудь может сказать мне, как скомпилировать двоичный файл Tensorflow для использования: SSE4.1, SSE4.2 в файле Docker?. Кто-нибудь може…
29 янв '18 в 15:44
1 ответ

Как работает встроенная функция _mm_cmpgt_epi64

Я использую _mm_cmpgt_epi64 присуща реализация 128-битного дополнения, а затем и 256-битного. Глядя на результат этого внутреннего что-то озадачивает меня. Я не понимаю, почему вычисленная маска такая, какая она есть. const __m128i mask = _mm_cmpgt_…
14 окт '18 в 17:59
2 ответа

Инструкция MOVDQU + граница страницы

У меня есть простая тестовая программа, которая загружает регистр xmm с инструкцией movdqu для доступа к данным через границу страницы (OS = Linux). Если следующая страница сопоставлена, это работает просто отлично. Если это не отображается, то я по…
11 фев '14 в 22:49
2 ответа

Оптимизация кода с использованием встроенных функций Intel SSE для векторизации

Я впервые работаю с SSE. Я пытаюсь преобразовать простой кусок кода в более быструю версию, используя встроенную функцию Intel SSE (до SSE4.2). Кажется, я столкнулся с рядом ошибок. Скалярная версия кода: (простое умножение матриц) void mm(int n, do…
08 июн '12 в 16:50
3 ответа

Умножение SSE 16 x uint8_t

Я хочу умножить с SSE4 __m128i объект с 16 беззнаковыми 8-битными целыми числами, но я мог найти только встроенную функцию для умножения 16-битных целых чисел. Нет ничего такого как _mm_mult_epi8?
19 ноя '11 в 11:03
1 ответ

Использование SSE4.2 инструкции PCMPESTRM с небольшими паттернами

Я пытаюсь использовать некоторые инструкции SSE4.2 в алгоритмах сопоставления строк, написанных на C++. Я не понимаю, как использовать эти инструкции, чтобы соответствовать меньшим образцам, и надеялся, что кто-нибудь может помочь мне с этим. В прим…
21 окт '16 в 17:46
2 ответа

Генерация кода для нескольких SIMD-архитектур

Я написал библиотеку, где я использую CMake для проверки наличия заголовков для MMX, SSE, SSE2, SSE4, AVX, AVX2 и AVX-512. В дополнение к этому я проверяю наличие инструкций и, если они есть, добавляю необходимые флаги компилятора, -msse2 -mavx -mfm…
10 июн '17 в 23:35