Вопросы по теме 'sse2'

Ошибка компилятора SSE2
Я пытаюсь взломать SSE2 и попробовал следующий пример программы : #include "stdafx.h" #include <emmintrin.h> int main(int argc, char* argv[]) { __declspec(align(16)) long mul; // multiply variable __declspec(align(16)) int t1[100000];...
1065 просмотров

SSE2 - динамическое выделение памяти с выравниванием по 16 байт
РЕДАКТИРОВАТЬ: Это продолжение ошибки компилятора SSE2 Это настоящая ошибка, с которой я сталкивался раньше и воспроизведенную ниже, изменив оператор _mm_malloc на Майкл Берр предложил: Необработанное исключение 0x00415116 в...
3098 просмотров

numpy вызывает sse2 через ctypes
Вкратце, я пытаюсь вызвать общую библиотеку из python, точнее, из numpy. Общая библиотека реализована на C с использованием инструкций sse2. Включив оптимизацию, т.е. создав библиотеку с параметрами -O2 или –O1, я столкнулся со странными segfaults...
1191 просмотров
schedule 25.06.2023

Расширенная (80-битная) двойная плавающая точка в x87, а не в SSE2 — мы ее не пропустили?
Сегодня я читал о исследователи обнаружили, что библиотеки NVidia Phys-X используют x87 FP вместо SSE2 . Очевидно, что это будет неоптимально для параллельных наборов данных, где скорость превосходит точность. Однако автор статьи продолжает...
11746 просмотров
schedule 16.06.2023

Как проверить, поддерживает ли ваш Linux SSE2
Собственно у меня 2 вопроса: Является ли совместимость SSE2 проблемой процессора или проблемой компилятора? Как проверить, поддерживает ли ваш процессор или компилятор SSE2? Я использую версию GCC: gcc (GCC) 4.5.1 Когда я...
22268 просмотров

64-битный встроенный SIMD
Я использую следующее объявление объединения в SSE2. typedef unsigned long uli; typedef uli v4si __attribute__ ((vector_size(16))); typedef union { v4si v; uli data[2]; } uliv; uliv a, b, c; Идея состоит в том, чтобы...
1532 просмотров
schedule 13.01.2023

SIMD-код работает медленнее, чем скалярный код
elma и elmc оба unsigned long массивы. Таковы res1 и res2 . unsigned long simdstore[2]; __m128i *p, simda, simdb, simdc; p = (__m128i *) simdstore; for (i = 0; i < _polylen; i++) { u1 = (elma[i] >> l) & 15;...
3821 просмотров
schedule 15.03.2024

Строгий псевдоним и тип __m128i
При использовании встроенных функций SSE2 для выполнения побитовых операций необходимо привести указатели от int* к __m128i* . Нарушает ли этот код строгое правило псевдонимов? void bit_twiddling_func(int size, int const* input, int* output)...
856 просмотров
schedule 13.09.2023

SSE2 для двойных вычислений с GCC
Как я могу использовать SSE2 в GCC? Я хочу работать с двойными значениями. Я ищу что-л. например: http://vrm-vrm.blogspot.com/2009/10/gcc-intrinsics.html только для двойных значений.
1730 просмотров
schedule 18.06.2023

Преобразование встроенного ассемблера GCC (SSE2, SSSE3) в встроенные функции MSVC
Я заимствую некоторый код из VLC для своего видеоплеера, написанного на MSVC++ 2010, и не могу найти эквивалент его встроенных asms, связанных с извлечением декодированного видеокадра из памяти GPU в обычную память. В частности, я не знаю, как...
1050 просмотров
schedule 29.05.2022

Как оптимизировать эту функцию Delphi с помощью SSE2?
Мне нужна подсказка, как реализовать эту функцию Delphi, используя сборку SSE2 (32 бита). Приветствуются и другие оптимизации. Может быть, кто-нибудь может сказать мне, какие инструкции можно было бы использовать, чтобы у меня была отправная точка...
1607 просмотров
schedule 26.10.2023

SSE2, Visual Studio 2010 и отладочная сборка
Может ли компилятор автоматически использовать SSE2, когда оптимизация отключена? Когда оптимизация отключена, означает ли что-нибудь флаг /arch:SSE2? Мне дали задание выжать больше производительности из нашего программного обеспечения. К...
3915 просмотров
schedule 29.03.2022

странная ошибка во время приведения к __m128i
Я пытаюсь преобразовать беззнаковый короткий массив в __m128i : const unsigned short x[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; const unsigned short y[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; __m128i n =...
2496 просмотров
schedule 10.03.2023

Как добавить все элементы в массив с помощью SSE2?
Предположим, у меня есть очень простой код, например: double array[SIZE_OF_ARRAY]; double sum = 0.0; for (int i = 0; i < SIZE_OF_ARRAY; ++i) { sum += array[i]; } Я в основном хочу делать те же операции, используя SSE2. Как я могу это...
3245 просмотров
schedule 18.05.2022

Инструкция SSE2 для преобразования регистра 8x16 в два регистра 4x32, имеющих четные и нечетные индексированные элементы.
Есть ли какая-либо инструкция SSE2 для преобразования регистра 8x16 в два регистра 4x32, один регистр 4x32 с нечетными индексированными элементами из регистра 8x16, а другой - с четными индексированными элементами? Пожалуйста, предложите.
454 просмотров
schedule 03.05.2024

Где я могу найти хорошую реализацию exp(double) с использованием инструкций SSE2 на x86/x64?
Я установил, что реализации Microsoft exp(double) в библиотеке C VS2010 используют разные алгоритмы на платформах Win32 (т. е. 32-разрядная x86) и x64, хотя я включил SSE2 для платформы x86 и проверил, путь кода берется в exp(). К сожалению, разные...
277 просмотров
schedule 13.10.2022

C: x86 Intel Intrinsics использует _mm_log2_ps() -> ошибка: несовместимый тип 'int'?
Я пытаюсь применить log2 к переменной __m128. Как это: #include <immintrin.h> int main (void) { __m128 two_v = {2.0, 2.0, 2.0, 2.0}; __m128 log2_v = _mm_log2_ps(two_v); // log_2 := log(2) return 0; } Попытка скомпилировать...
466 просмотров
schedule 13.09.2022

Храните четыре 16-битных целых числа с помощью встроенных функций SSE
Я умножаю и округляю четыре 32-битных числа с плавающей запятой, а затем конвертирую их в четыре 16-битных целых числа с помощью встроенных функций SSE. Я хочу сохранить четыре целочисленных результата в массиве. С поплавками это просто:...
3043 просмотров
schedule 11.06.2022

Не определено ли целочисленное переполнение SSE2?
Знаковое целочисленное переполнение не определено в C и C ++. Но как насчет подписанного целочисленного переполнения в отдельных полях __m128i ? Другими словами, определено ли такое поведение в стандартах Intel? #include <inttypes.h>...
441 просмотров

Почему strcmp не оптимизирован для SIMD?
Я попытался скомпилировать эту программу на компьютере x64: #include <cstring> int main(int argc, char* argv[]) { return ::std::strcmp(argv[0], "really really really really really really really really really" "really really really...
9760 просмотров
schedule 04.11.2022