0
ответов

Выберите уникальную/дедупликацию в SSE/AVX

Проблема Существуют ли какие-либо вычислительно осуществимые подходы к внутрирегистративной дедупликации набора целых чисел с использованием инструкций simD x86? Пример У нас есть 4-кортежный регистр R1 = {3,9, 2, 9} и ...
вопрос задан: 25 May 2012 07:54
0
ответов

Должен ли я использовать SIMD, векторные расширения или что-то еще?

В настоящее время я разрабатываю платформу 3D-приложений с открытым исходным кодом на C++ (с C++11). Моя собственная математическая библиотека спроектирована так же, как математическая библиотека XNA, также с учетом SIMD. Но в настоящее время это не совсе
вопрос задан: 23 May 2012 15:56
0
ответов

Преобразование между SSE и NEON Intrinsics-Shuffling

Я пытаюсь преобразовать код, написанный на встроенных функциях SSE3, в NEON SIMD и застрял из-за функции перемешивания. Я просмотрел встроенные функции GCC, руководства ARM и другие форумы но не было ...
вопрос задан: 14 May 2012 22:02
0
ответов

Сравнение строк с помощью обёрток SSE4

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

добавление компонентов регистра SSE

Я хочу добавить четыре компонента регистра SSE, чтобы получить единственное число с плавающей запятой. Вот как я это делаю сейчас: float a [4]; _mm_storeu_ps (а, foo128); float x = a [0] + a [1] + a [2] + a [3]; Есть ли SSE ...
вопрос задан: 9 May 2012 19:09
0
ответов

Проверка целочисленного переполнения SSE2

При использовании инструкций SSE2, таких как PADDD (т. е. встроенная функция _mm_add_epi32), есть ли способ проверить была ли какая-либо из операций переполнена? Я подумал, что это может быть флаг в элементе управления MXCSR...
вопрос задан: 9 May 2012 06:46
0
ответов

SSE-умножение 4 32 -битных целых чисел

Как умножить четыре 32 -битных целых числа на другие 4 целых числа? Я не нашел ни одной инструкции, которая может это сделать.
вопрос задан: 8 May 2012 15:00
0
ответов

Не удается получить доступ к памяти как тип SSE на x86, но отлично работает на x64

У меня есть код, написанный с использованием встроенных функций MSVC SSE. __m128 ноль = _мм _setzero _ps (); __m128 центр = _мм _нагрузка _ps (&sphere.origin.x ); __m128 boxmin =...
вопрос задан: 7 May 2012 15:42
0
ответов

В чем SSE-инструкции превосходят обычные инструкции

В каких случаях SSE-инструкции x86 -64 (векторные инструкции )превосходят обычные инструкции. Потому что я вижу, что частые загрузки и сохранения, которые требуются для выполнения SSE...
вопрос задан: 25 April 2012 10:08
0
ответов

Использование инструкций SSE с gcc без встроенного ассемблера

Я заинтересован в использовании векторных инструкций SSE x86 -64 с gcc и не хочу использовать какой-либо встроенный ассемблер для тот. Есть ли способ сделать это на C? Если да, то может ли кто-нибудь привести мне пример?
вопрос задан: 25 April 2012 06:52
0
ответов

Добавление массива SIMD для произвольной длины массива.

Я учусь использовать возможности SIMD, пере-написав свою личную библиотеку обработки изображений с использованием встроенных векторов. Одной из основных функций является простой «массив +=», т.е. void arrayAdd(unsigned char*A,...
вопрос задан: 16 April 2012 01:24
0
ответов

Использование инструкций процессора AVX: Низкая производительность без "/arch:AVX"

Мой код на C++ использует SSE, и теперь я хочу улучшить его для поддержки AVX, когда он доступен. Поэтому я определяю, когда AVX доступен, и вызываю функцию, которая использует команды AVX. Я использую Win7 SP1 + VS2010 SP1 и ...
вопрос задан: 5 April 2012 14:51
0
ответов

Поиск операции sse 128-битного сдвига для непрямого значения сдвига.

Встроенная функция _mm_slli_si128 будет выполнять логический сдвиг влево из 128-битного регистра, но она ограничена немедленными значениями сдвига и сдвигами на байты, а не на биты. Я могу использовать встроенную функцию, такую ​​как _mm_sll_epi64 ...
вопрос задан: 2 April 2012 18:36
0
ответов

Самый быстрый способ суммирования горизонтальных векторов с инструкциями AVX [дубликат]

У меня есть упакованный вектор из четырех 64-битных значений с плавающей запятой. Я хотел бы получить сумму элементов вектора. С SSE (и с использованием 32-битных чисел с плавающей запятой) я мог просто сделать следующее: v_sum = ...
вопрос задан: 19 March 2012 18:20
0
ответов

Как лучше всего выполнить ветвление с помощью Intel SSE?

Я пишу компилятор и должен вывести код для условий ветвления для значений с плавающей запятой. Например, для компиляции такого кода: if(a <= b){ //1. Сделай что-нибудь } иначе { //2. Сделайте...
вопрос задан: 4 March 2012 20:13
0
ответов

Есть ли хорошая SIMD-библиотека с малой матрицей двойной точности для x86?

Мне нужна библиотека SIMD, ориентированная на небольшие (4x4) матричные операции для графики. Там много одинарной точности, но мне нужно поддерживать как одинарную, так и двойную точность. Я искал ...
вопрос задан: 2 March 2012 21:36
0
ответов

128-битный счетчик SSE?

Мне нужна функция Переменная __m128i с периодом 2 ^ 128. Ей не нужно монотонно увеличиваться (как счетчик), но нужно посещать каждое значение один раз. Самый простой пример, который я мог придумать, на самом деле ...
вопрос задан: 19 February 2012 12:03
0
ответов

SIMD (AVX ) compare

Как называется внутренняя функция gcc для сравнения __m256 и __m256i (набор инструкций AVX)?
вопрос задан: 17 February 2012 19:53
0
ответов

SSE: преобразование короткого целого числа в число с плавающей запятой

Я хочу преобразовать массив коротких чисел без знака в число с плавающей запятой с помощью SSE. Допустим, __m128i xVal; // Имеет 8 16-битных целых чисел без знака __m128 y1, y2; // 2 регистра xmm для 8 значений с плавающей запятой Я хочу ...
вопрос задан: 6 February 2012 14:50
0
ответов

Выравнивание и производительность

Маршруты strcmp для сравнения char * и memcmp для всего остального, работают ли они быстрее на блоке памяти (на x86_64), который как-то выровнен (как?)? Использует ли libc SSE для этих процедур?
вопрос задан: 31 January 2012 10:19
0
ответов

Почему _mm_stream_ps вызывает промахи кэша L1 / LL?

Я пытаюсь оптимизировать алгоритм, требующий больших вычислений, и как бы застрял в какой-то проблеме с кешем. У меня есть огромный буфер, который записывается время от времени и случайным образом и читается только один раз в конце ...
вопрос задан: 30 January 2012 17:58
0
ответов

Как преобразовать long long (или __int64) в __m64

Как правильно преобразовать значение __int64 в значение __m64 для использования с SSE?
вопрос задан: 30 January 2012 09:55
0
ответов

SSE intrinsics cause normal float operation to return -1.#INV

У меня проблема с SSE методом, который я пишу и который выполняет обработку звука. Я реализовал случайную функцию SSE, основанную на статье Intel здесь: http://software.intel.com/en-us/articles/...
вопрос задан: 29 January 2012 10:59
0
ответов

Используйте встроенные функции SSE2 и встроенный ассемблер gcc

Я попытался совместить встроенные функции SSE2 и встроенный ассемблер в gcc. Но если я укажу переменную как xmm0 / register в качестве входных данных, в некоторых случаях я получаю ошибку компилятора. Пример: #include ...
вопрос задан: 27 January 2012 21:33
0
ответов

Внутренние функции SSE - сравнение, если / иначе оптимизация

Я пытался оптимизировать некоторый код, который обрабатывает необработанные данные пикселей. В настоящее время реализация кода на C ++ работает слишком медленно, поэтому я пытался обосновать использование встроенных функций SSE (SSE / 2/3 ...
вопрос задан: 24 January 2012 12:27
0
ответов

Использование встроенных функций AVX вместо SSE не улучшает скорость - почему?

Я уже довольно давно использую встроенные функции Intel SSE с хорошим приростом производительности. Следовательно, я ожидал, что встроенные функции AVX еще больше ускорят мои программы. К сожалению, этого не произошло ...
вопрос задан: 19 January 2012 10:47
0
ответов

Почему компилятор генерирует пару инструкций push / pop?

Я скомпилировал приведенный ниже код с компилятором VC ++ 2010: __declspec (dllexport) беззнаковый int __cdecl __mm_getcsr (void) {return _mm_getcsr (); } и сгенерированный код был: push ECX stmxcsr [ESP] ...
вопрос задан: 14 January 2012 15:41
0
ответов

SSE медленнее, чем FPU?

У меня есть большой фрагмент кода, часть тела которого содержит этот фрагмент кода: result = (nx * m_Lx + ny * m_Ly + m_Lz) / sqrt (nx * nx + ny * ny + 1); который я векторизовал следующим образом (все ...
вопрос задан: 13 January 2012 08:46
0
ответов

Как перемещать 128-битные значения между регистрами XMM?

На первый взгляд тривиальная проблема при сборке: я хочу скопировать весь регистр XMM0 в XMM3. Я пробовал movdq xmm3, xmm0, но MOVDQ нельзя использовать для перемещения значений между двумя регистрами XMM. Что мне делать ...
вопрос задан: 29 December 2011 17:58
0
ответов

Что означает упорядоченное / неупорядоченное сравнение?

Рассмотрение операторов SSE CMPORDPS - упорядоченное сравнение упакованных одиночных игр CMPUNORDPS - неупорядоченный сравнить упакованные одиночные игры Что значит «упорядоченный» и «неупорядоченный»? Я искал эквивалентные инструкции в ...
вопрос задан: 25 December 2011 18:49