0
ответов

Встроенная сборка GCC - Переместите float в XMM0 перед вызовом

В настоящее время я пытаюсь вызвать общую функцию C из встроенной сборки GCC (плохая идея, я знаю, но мне скучно сегодня...). Моя операционная система - Mac OS X, 64 бита, поэтому соглашение о вызовах - System V, ...
вопрос задан: 2 May 2011 21:49
0
ответов

Оптимизация кодирования переменной длины

У меня есть случай, когда мне нужно сжать много часто небольших значений. Поэтому я сжимаю их с помощью байтового кодирования переменной длины (ULEB128, если быть точным): size_t compress_unsigned_int(unsigned int n, ...
вопрос задан: 2 May 2011 16:02
0
ответов

Профилирование SIMD-кода

ОБНОВЛЕНО - Отметьте ниже. Сделайте это как можно короче. С радостью добавлю дополнительную информацию, если потребуется. У меня есть код sse для нормализации вектора. Я использую QueryPerformanceCounter () (завернутый в ...
вопрос задан: 28 April 2011 14:54
0
ответов

64-битные функции в 32-битном приложении?

У меня есть 32-битное приложение, которое я планирую запустить в 64-битной Windows 7. На данном этапе я не могу преобразовать все приложение в 64-битное из-за зависимости от сторонних функций. Однако я бы ...
вопрос задан: 27 April 2011 07:41
0
ответов

Как компиляторы обрабатывают встроенные функции SSE (или любые другие)?

Некоторое время назад я где-то читал, что встроенные функции SSE компилируются в эффективный машинный код, потому что компиляторы обрабатывают их иначе, чем обычные функции. Я брожу, как на самом деле делают компиляторы ...
вопрос задан: 15 April 2011 14:43
0
ответов

Accepted XX: UseSSE values ​​for Java JVM?

Я хотел бы сравнить производительность приложения в нескольких версиях SSE, но мне не удалось найти значения, которые принимается этим флагом JVM. Я тестирую 0, 1, 3 и 4. Я совершенно не уверен ...
вопрос задан: 5 April 2011 02:22
0
ответов

Intel SSE: Почему `_mm_extract_ps` возвращает ʻint` вместо` float`?

Почему _mm_extract_ps возвращает int вместо float? Как правильно читать одиночный float из регистр XMM в C? Или, скорее, это можно задать по-другому: что противоположно ...
вопрос задан: 3 April 2011 00:28
0
ответов

выполняет перезапись имеет смысл memcpy / memcmp /… с инструкциями SIMD

Имеет ли смысл переписывание memcpy / memcmp / ... с инструкциями SIMD в крупномасштабном программном обеспечении? Если да, то почему gcc не • по умолчанию генерировать инструкции simd для этих библиотечных функций. Кроме того, есть ...
вопрос задан: 16 March 2011 05:21
0
ответов

Может ли CUDA использовать расширения SIMD?

Я немного погуглил, но сейчас мне непонятно, могут ли некоторые графические процессоры, запрограммированные с помощью CUDA, использовать преимущества или могут использовать инструкции, похожие на от расширений SSE SIMD; например ...
вопрос задан: 8 March 2011 21:48
0
ответов

Почему SSE set (_mm_set_ps) меняет порядок аргументов

Недавно я заметил, что _m128 m = _mm_set_ps (0,1,2,3); помещает 4 числа с плавающей запятой в обратный порядок при преобразовании в массив с плавающей запятой: (float *) p = (float *) (& m); // p [0] == 3 // p [1] == 2 // p [2] == 1 // p [3] ...
вопрос задан: 8 March 2011 20:47
0
ответов

Ошибка MySQL: не могу получить имя хоста с вашего IP-адреса

Я использую свою удаленную базу данных MySQL в течение длительного времени. Но сегодня я неожиданно обнаружил, что не могу подключиться к базе данных. У меня ошибка. «Не могу получить имя хоста с вашего IP-адреса». Я не ...
вопрос задан: 25 February 2011 14:19
0
ответов

Наиболее эффективный способ вычитания одного массива из другого

У меня есть следующий код: узкое место в одной части моего приложения. Все, что я делаю, это вычитаю один массив из другого. Оба этих массива содержат около 100000 элементов. Я пытаюсь найти ...
вопрос задан: 17 February 2011 17:17
0
ответов

Получаю ли я снижение производительности при смешивании инструкций SSE integer / float SIMD

Я использовал инструкции SIMD x86 (SSE1234) в вид встроенных элементов довольно много в последнее время. Что меня расстраивает, так это то, что SSE ISA имеет несколько простых инструкций, доступных только для чисел с плавающей запятой ...
вопрос задан: 16 February 2011 21:16
0
ответов

Загрузка констант с плавающей запятой в регистры SSE

Я пытаюсь найти эффективный способ загрузки констант времени компиляции с плавающей запятой в SSE (2 / 3) регистры. Я пробовал написать такой простой код, const __m128 x = {1.0f, 2.0f, 3.0f, 4.0f}; но это ...
вопрос задан: 15 February 2011 18:31
0
ответов

Выравнивание памяти G ++ SSE в стеке

Я пытаюсь переписать трассировщик лучей с помощью потоковой передачи Расширения SIMD. В моем первоначальном трассировщике лучей для загрузки данных в регистры xmm использовались инструкции встроенной сборки и movups. Я читал это ...
вопрос задан: 11 February 2011 05:03
0
ответов

Чтение VARBINARY (MAX) из SQL Server в C #

Мне нужно прочитать строку данных из SQL Server 2008. Тип одного из столбцов - VARBINARY (MAX). В C # я хочу использовать параметр out для его чтения (и данный сценарий в основном удовлетворяет потребности). Но я ...
вопрос задан: 9 February 2011 17:26
0
ответов

Нормализация SSE медленнее, чем простое приближение?

Я пытаюсь нормализовать 4-мерный вектор. Мой первый подход было использовать встроенные функции SSE - то, что обеспечивало двукратное увеличение скорости моей векторной арифметики. Вот основной код: (v.v4 - вход) (...
вопрос задан: 1 February 2011 19:57
0
ответов

Переменная время выполнения программы C

Моя реализация (simd) занимает разное количество времени, хотя она выполняется для фиксированного ввода. Время работы варьируется от 100 миллионов до 120 миллионов тактовых циклов. Программа вызывает реализацию ...
вопрос задан: 30 January 2011 23:31
0
ответов

приблизительно log10 [x ^ k0 + k1]

Приветствую. Я' m пытается аппроксимировать функцию Log10 [x ^ k0 + k1], где .21
вопрос задан: 16 January 2011 08:10
0
ответов

Поддержка SSE (расширений SIMD) в gcc

Я вижу код, показанный ниже: #include "stdio.h" #define VECTOR_SIZE 4 typedef float v4sf __attribute__ ((vector_size (sizeof (float) * VECTOR_SIZE))); // вектор из четырех одинарных чисел с плавающей запятой typedef union ...
вопрос задан: 5 January 2011 10:15
0
ответов

SSE2: Функция журнала с двойной точностью

Мне нужна реализация функции журнала с открытым исходным кодом (без ограничений по лицензии), что-то с подписью __m128d _mm_log_pd (__ m128d); Он доступен в Intel Short Vector Math Library (часть ICC), ...
вопрос задан: 27 December 2010 11:53
0
ответов

Сравнение 128-битных хеш-кодов с SSE

В моем текущем проекте мне нужно сравнить 128-битные значения (на самом деле хеши md5), и я подумал, что можно ускорить сравнение, используя Инструкции SSE. Моя проблема в том, что я не могу ...
вопрос задан: 26 December 2010 14:48
0
ответов

Выровненные типы и передача аргументов по значению

Передача выровненных типов или структур с выровненными типами по значению не работает с некоторыми реализациями. Это разрушает контейнеры STL, потому что некоторые методы (например, изменение размера) принимают свои аргументы с помощью ...
вопрос задан: 20 December 2010 15:56
0
ответов

индексация в массив с помощью SSE

Предположим, у меня есть массив: uint8_t arr [256]; и элемент __m128i x, содержащий 16 байтов, x_1, x_2, ... x_16 Я хотел бы эффективно заполнить новый элемент __m128i __m128i y значениями из ...
вопрос задан: 19 December 2010 16:23
0
ответов

Какой наиболее эффективный способ загрузки и извлечения 32-битных целочисленных значений из 128-битного вектора SSE?

Я пытаюсь оптимизировать свой код, используя встроенные функции SSE, но столкнулся с проблемой, когда не знаю, как хорошо извлечь целочисленные значения из вектора после того, как я выполнил встроенные функции SSE ...
вопрос задан: 5 December 2010 22:22
0
ответов

Наиболее эффективный способ хранения 4 точечных произведений в непрерывном массиве на C с использованием встроенных функций SSE

Я оптимизирую некоторый код для микроархитектуры Intel x86 Nehalem с использованием встроенных функций SSE. Часть моей программы вычисляет 4 точечных произведения и добавляет каждый результат к предыдущим значениям в непрерывном ...
вопрос задан: 14 November 2010 07:35
0
ответов

What is my compiler doing? (optimizing memcpy)

I'm compiling a bit of code using the following settings in VC++2010: /O2 /Ob2 /Oi /Ot However I'm having some trouble understanding some parts of the assembly generated, I have put some questions ...
вопрос задан: 27 October 2010 13:24
0
ответов

Как сохранить значения в ячейках памяти, состоящих из нескольких несмежных участков, с SSE Intrinsics?

Я очень плохо знаком с SSE и оптимизировал раздел кода с помощью intrinsics. Я доволен самой операцией, но я ищу лучший способ записать результат. Результаты заканчиваются в три...
вопрос задан: 19 October 2010 15:10
0
ответов

DPPS в старой версии GCC

Hei! Мне нужно оптимизировать код умножения матриц в c, и я делаю это с помощью векторных инструкций SSE. Я также обнаружил, что существует SSE4.1, в котором уже есть инструкция для dot-product, dpps. Мне нужно оптимизировать код умножения матриц в c, и
вопрос задан: 16 October 2010 06:53
0
ответов

SIMD (SSE) инструкция для деления в GCC

Я бы хотел оптимизировать следующий фрагмент, используя инструкции SSE, если это возможно: / * * структура данных * / typedef struct v3d v3d; struct v3d {двойной х; двойной y; двойной z; } tmp = {1 ....
вопрос задан: 29 September 2010 22:39