Вопросы по теме 'sse2'
Какой самый эффективный способ умножить 4 числа с плавающей запятой на 4 числа с плавающей запятой с помощью SSE?
В настоящее время у меня есть следующий код:
float a[4] = { 10, 20, 30, 40 };
float b[4] = { 0.1, 0.1, 0.1, 0.1 };
asm volatile("movups (%0), %%xmm0\n\t"
"mulps (%1), %%xmm0\n\t"
"movups %%xmm0, (%1)"...
1765 просмотров
schedule
09.12.2022
Visual Studio 2010 и SSE 4.2
Я хотел бы знать, что необходимо установить в Visual Studio 2010, чтобы включить SSE 4.2? Я хотел бы использовать его из-за оптимизированного POPCNT...
Как проверить, все ли настройки в порядке?
Спасибо
ну, я пытался использовать ваше...
2378 просмотров
schedule
24.02.2023
Инструкция SSE2 для загрузки целых чисел в обратном порядке
Есть ли инструкция SSE2 для загрузки 128-битного векторного регистра int из буфера int в обратном порядке?
4609 просмотров
schedule
20.12.2022
Умножение SSE 2 64-битных целых чисел
Как умножить два 64-битных целых числа на два других 64-битных целых числа? Я не нашел ни одной инструкции, которая может это сделать.
3995 просмотров
schedule
04.03.2024
Перемещение числа четверного слова в регистры xmm
Я пытаюсь переместить число из 64-битного регистра в регистр xmm для выполнения арифметических операций. Мои мысли были такими:
movq xmm1, r14
В моей программе r14 держит счетчик, и мне нужно, чтобы он был перемещен в xmm1, чтобы я мог...
2395 просмотров
schedule
27.03.2023
Встроенная поддержка Intel для процессора Atom cloverview
У меня есть приложение, которое было разработано для процессоров Sandbridge, использующих SSE в AVX, теперь я хочу, чтобы это же приложение работало на процессорах Atom.
Я недавно просматривал сеть для внутренней поддержки процессоров Atom...
340 просмотров
schedule
04.08.2023
Встроенные функции SSE2 — сравнение 2 __m128i, содержащих по 4 int32 в каждом, чтобы увидеть, сколько из них равны
Я впервые погружаюсь во встроенные функции SSE2 и не знаю, как это сделать.
Я хочу сравнить 4 int32 с 4 другими int32 и подсчитать, сколько из них равны. Итак, я прочитал свои первые 4 int32, установил их в __m128i, сделал то же самое для второго...
653 просмотров
schedule
03.11.2022
Нарушение доступа к сборке movdqa
В настоящее время я пытаюсь написать функцию на ассемблере и хочу переместить 128 бит строки, расположенной по адресу памяти, хранящемуся в rdx , в регистр xmm1 .
Если я использую movdqa xmm1, [rdx] , я получаю исключение нарушения прав доступа...
818 просмотров
schedule
10.03.2023
Внутренняя проблема загрузки Intel
Цель кода — вычесть из каждого символа строки str значение в массиве ключей. Невекторизованная версия программы соответствует последнему циклу в обеих программах. Как этот код:
void decode(const char* key, int m, char* str) {
int i; int n =...
176 просмотров
schedule
14.12.2023
Что такое эквивалент встроенных функций в сборке SSE2?
Я использую Fasm (сборка) и ищу инструкции по сборке SSE2, эквивалентные этим внутренним инструкциям:
_mm_set1_epi8
_mm_cmpeq_epi8
_mm_movemask_epi8
Где их взять (веб-сайт, pdf...)?
572 просмотров
schedule
24.03.2023
Как преобразовать скалярный код двойной версии VDT Pade Exp fast_ex() приблизительно в SSE2?
Вот код, который я пытаюсь преобразовать: double версия VDT's Pade Exp fast_ex() приблизительно (вот старый репозиторий ресурс):
inline double fast_exp(double initial_x){
double x = initial_x;
double...
215 просмотров
schedule
31.03.2022
Почему AVX2 и SSE2 побитовые операторы ИЛИ не быстрее, чем простой | оператор?
Я пытаюсь ускорить побитовую операцию ИЛИ для очень длинных двоичных векторов, используя 32-битные целые числа.
В этом примере мы можем предположить, что nwords — это количество слов, кратное 4 и 8. Следовательно, нет напоминания о цикле. Этот...
256 просмотров
schedule
18.07.2023
задержка для 'pcmpeqb' - память против регистра xmm
у меня есть эти 2 варианта:
Опция 1:
loop:
...
movdqu xmm0, [rax]
pcmpeqb xmm0, [.zero_table]
...
...
align 16
.zero_table:
DQ 0, 0
вариант 2:
pxor xmm1, xmm1
loop:
...
movdqu xmm0, [rax]
pcmpeqb xmm0,...
130 просмотров
schedule
22.04.2023
Можно ли использовать встроенные функции _mm_store_si128/_mm_load_si128 для реализации 128-битного атомарного типа?
Если я хочу реализовать 128-битный атомарный тип на x64, могу ли я использовать _mm_store_si128 и _mm_load_si128 , чтобы избежать cmpxchg16b для расслабленных load и store ?
(Если нужно, могу предположить, что нужны только load и store ,...
148 просмотров
schedule
20.10.2022
Сдвиг влево (массива float32) с AVX2 и заполнение нулем
Я уже некоторое время использую следующий "трюк" в коде C с SSE2 для чисел с плавающей запятой одинарной точности:
static inline __m128 SSEI_m128shift(__m128 data)
{
return (__m128)_mm_srli_si128(_mm_castps_si128(data), 4);
}
Для таких...
69 просмотров
schedule
03.04.2022
Как вы делаете знаковое 32-битное расширяющее умножение на SSE2?
Этот вопрос возник при рассмотрении предложения WebAssembly SIMD для расширенного умножения.
Для поддержки старого оборудования нам необходимо поддерживать SSE2, а единственная операция векторного умножения для 32-битных целых чисел — pmuludq ....
108 просмотров
schedule
08.04.2022
Как лучше эмулировать логическое значение _mm_slli_si128 (128-битный битовый сдвиг), а не _mm_bslli_si128
Просматривая руководство по внутренним компонентам, я увидел эту инструкцию. Глядя на шаблон именования, смысл должен быть ясен: Сдвиг 128-битного регистра влево на фиксированное число бит, но это не так. На самом деле он сдвигается на фиксированное...
211 просмотров
schedule
28.10.2022
_mm_stream_si128 на 2000% медленнее, чем _mm_store_si128
Я писал код C для создания генератора случайных чисел и использовал следующий код:
// header
typedef struct {
uint64_t values[2];
} fy5z_state_t;
fy5z_state_t fy5z_seed(uint64_t seed_value);
uint64_t fy5z_generate(fy5z_state_t* state);
//...
40 просмотров
schedule
27.11.2022