0
ответов

Как сравнить два вектора с помощью SIMD и получить один логический результат?

У меня есть два вектора по 4 целых числа в каждом, и я хотел бы использовать команду SIMD для их сравнения (скажем, сгенерировать вектор результатов, где каждая запись равна 0 или 1 в зависимости от результата сравнения). Затем я бы ...
вопрос задан: 27 April 2015 16:01
0
ответов

как работать с 128 битами C переменная и xmm 128 битами asm?

в gcc я хочу сделать 128 битов xor с 2 переменными C, с помощью кода asm: как? asm ("movdqa %1, %% xmm1"; "movdqa %0, %% xmm0"; "pxor %% xmm1, %% xmm0"; "movdqa %% xmm0, %0";: "=x" (любитель)...
вопрос задан: 13 March 2014 23:30
0
ответов

Оптимизация уплотнения массивов

Допустим, у меня есть массив k = [1 2 0 0 5 4 0] Я могу вычислить маску следующим образом m = k > 0 = [1 1 0 0 1 1 0] Используя только маску m и следующие операции Сдвиг влево/вправо И/Ор Добавить/...
вопрос задан: 5 December 2013 01:47
0
ответов

Поисковая таблица с использованием SIMD

У меня есть функция обработки больших пикселей, которую я сейчас пытаюсь оптимизировать с помощью встроенных функций. Будучи новичком в SSE, я не знаю, как справиться с той частью кода, которая включает в себя поиск...
вопрос задан: 3 December 2013 09:05
0
ответов

Логарифм с SSE или переход на FPU?

Я делаю статистические вычисления. Мне нужно, чтобы они были быстрыми, поэтому я переписал большую часть их, чтобы использовать SSE. Я новичок в этом, поэтому мне было интересно, какой здесь подход правильный: насколько мне известно, ...
вопрос задан: 25 September 2013 13:15
0
ответов

Код SIMD работает медленнее, чем скалярный код

elma и elmc оба беззнаковые long массивы. Таковы res1 и res2. беззнаковый длинный simdstore [2]; __m128i * p, simda, simdb, simdc; p = (__m128i *) simdstore; for (i = 0; i <_polylen; i ++) ...
вопрос задан: 9 March 2013 18:16
0
ответов

ARM Cortex-A8: В чем разница между VFP и NEON

В процессоре ARM Cortex-A8 я понимаю, что такое NEON, это сопроцессор SIMD. Но работает ли модуль VFP (Vector Floating Point), который также является сопроцессором, как процессор SIMD? Если да, то какой ...
вопрос задан: 8 February 2013 22:17
0
ответов

Как я должен передавать данные SSE своим функциям/операторам?

Я пишу пару классов-оболочек для SSE Intrinsics -, в основном для того, чтобы получить тип -безопасных геометрических операций, а также для добавления пары удобных функций. Все мои функции и операторы встроены....
вопрос задан: 9 August 2012 07:59
0
ответов

SIMD следующий код

Как мне SIMIDize следующий код в C (, используя встроенные SIMD, конечно )? У меня проблемы с пониманием внутренних свойств SIMD, и это очень помогло бы :int sum _naive (int n, int *a ){целая сумма =...
вопрос задан: 9 August 2012 07:59
0
ответов

Оптимизация с помощью сборки NEON

Я пытаюсь оптимизировать некоторые части кода OpenCV, используя NEON. Вот оригинальный блок кода, над которым я работаю. (Примечание :Если это имеет какое-либо значение, вы можете найти полный исходный код в "opencvfolder/modules/video/...
вопрос задан: 26 July 2012 14:03
0
ответов

Моделирование функциональности packusdw с помощью SSE2

Я реализую функцию быстрого преобразования x888 -> 565 пикселей в pixman по алгоритму, описанному Intel [ пдф]. Их код преобразует x888 -> 555, а я хочу преобразовать в 565. ...
вопрос задан: 14 June 2012 07:47
0
ответов

Инструкции SSE для добавления всех элементов массива [дубликат]

Я новичок в инструкциях SSE2. Я нашел инструкцию _mm_add_epi8, которая может добавить два элемента массива. Но мне нужна инструкция SSE, которая может добавлять все элементы массива. Я пытался разработать...
вопрос задан: 7 June 2012 11:38
0
ответов

Предоставляет ли .NET Framework 4.5 поддержку SSE4/AVX?

Кажется, я слышал об этом, но не знаю, где. upd: Я рассказывал про JiT
вопрос задан: 27 May 2012 18:31
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
ответов

Используют ли векторные типы OpenCL SIMD

В настоящее время у меня есть большой массив чисел с плавающей запятой, который я обрабатываю в своем ядре OpenCL. Мне интересно, разделю ли я этот массив и использую массив векторных типов OpenCL вместо этого, если это ускорит процесс. ...
вопрос задан: 10 May 2012 19:52
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
ответов

Как скомпилировать код SIMD с помощью gcc

Я написал этот код для умножения матриц в SIMD, который мне удалось скомпилировать в Visual Studio, но теперь мне нужно скомпилировать его в Ubuntu, используя gcc/г++. Какие команды я должен использовать для компиляции этого?...
вопрос задан: 28 April 2012 19:13
0
ответов

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

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

Проверить регистр XMM на наличие всех нулей

Есть ли способ проверить, равны ли 0 все биты/байты/слова и т. д. в переменной __m128i? В моем приложении я должен проверить, являются ли все целые числа, упакованные в переменную __m128i, нулями. Придется ли мне извлекать их...
вопрос задан: 16 April 2012 17:54
0
ответов

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

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

Как найти горизонтальный максимум в 256-битном векторе AVX

У меня есть вектор __m256d, упакованный четырьмя 64-битными значениями с плавающей запятой . Мне нужно найти горизонтальный максимум элементов вектора и сохранить результат в скалярном значении двойной точности; Мой...
вопрос задан: 20 March 2012 21:48
0
ответов

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

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

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

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

Реализация __builtin_clz

Какова реализация __builtin_clz в GCC (4.6+)? Соответствует ли она какой-то инструкции процессора на Intel x86_64 (AVX)?
вопрос задан: 19 February 2012 22:36
0
ответов

SIMD (AVX ) compare

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

Количество вычислительных единиц, соответствующее количеству рабочих групп

Мне нужны некоторые пояснения. Я разрабатываю OpenCL на своем ноутбуке с небольшим графическим процессором nvidia (310M). Когда я запрашиваю у устройства CL_DEVICE_MAX_COMPUTE_UNITS, результат будет 2. Я прочитал количество работ ...
вопрос задан: 17 February 2012 10:17
0
ответов

Загрузка данных для векторных расширений GCC

Векторные расширения GCC предлагают хороший, достаточно переносимый способ доступа к некоторым инструкциям SIMD на различных аппаратных архитектурах без использования встроенных аппаратных функций (или автоматических -...
вопрос задан: 17 February 2012 00:20