Публикации по теме 'simd'
Я не вижу, где определяется делегат. Я думаю, он называется sumComputer.
Я не вижу, где определяется делегат. Я думаю, он называется sumComputer.
Вопросы по теме 'simd'
Преимущество одновременного использования нескольких наборов инструкций SIMD
Я пишу высокопараллельное многопоточное приложение. У меня уже есть класс потока с ускорением SSE. Если бы мне пришлось написать класс потока с ускорением MMX, а затем запустить оба потока одновременно (один поток SSE и один поток MMX на ядро),...
1327 просмотров
schedule
28.10.2021
В чем разница между SPMD и SIMD?
Я просто не могу понять, в чем разница между ними ...
SPMD находится на уровне программирования, а SIMD - на аппаратном уровне?
пример был бы хорош!
Благодарность
6982 просмотров
schedule
18.11.2021
Почему этот цикл не векторизован?
Одна из наиболее горячих точек при профилировании кода, над которым я работаю, - это следующий цикл:
for(int loc = start; loc<end; ++loc)
y[loc]+=a[offset+loc]*x[loc+d];
где массивы y, a и x не перекрываются. Мне кажется, что такой...
690 просмотров
schedule
14.09.2021
Как отключить векторизацию при использовании GCC?
Я компилирую свой код, используя следующую команду:
gcc -O3 -ftree-vectorizer-verbose=6 -msse4.1 -ffast-math
При этом все оптимизации включены.
Но я хочу отключить векторизацию, сохранив при этом другие оптимизации.
11686 просмотров
schedule
06.09.2021
Оптимизация кода SSE2
Я использую встроенные функции SSE2 для оптимизации узких мест в моем приложении, и у меня возникает следующий вопрос:
ddata = _mm_xor_si128(_mm_xor_si128(
_mm_sll_epi32(xdata, 0x7u), _mm_srl_epi32(tdata, 0x19u)), xdata);
В компиляторе...
1334 просмотров
schedule
26.10.2021
Как в этом случае себя ведет SIMD?
Я использую движок, который позволяет писать SIMD-код, и он работает быстро. Но есть только один блок, в котором есть весь код.
Я понимаю, что этот код запускается независимо для каждой сущности одновременно, но когда изменяется только одна вещь,...
85 просмотров
schedule
21.09.2021
Проверить регистр XMM на наличие всех нулей
Есть ли способ проверить, все ли биты / байты / слова и т. Д. В переменной __m128i равны 0? В моем приложении я должен проверить, все ли целые числа, упакованные в переменную __m128i , равны нулю. Придется ли мне их извлекать и сравнивать по...
3133 просмотров
schedule
21.09.2021
Сравнение и извлечение с помощью SSE
Как лучше всего попарно сравнивать два целочисленных регистра и извлекать одинаковые элементы с помощью инструкций SSE? Например, если a = [6 4 7 2] и b = [2 4 9 2] (каждый регистр содержит четыре 32-битных целых числа), результат должен быть [4...
996 просмотров
schedule
02.12.2021
Добавить все элементы в полосу
Есть ли встроенная функция, которая позволяет добавлять все элементы на дорожку? Я использую Neon, чтобы перемножить 8 чисел, и мне нужно просуммировать результат. Вот перефразированный код, показывающий, что я делаю сейчас (возможно, это можно было...
5160 просмотров
schedule
11.09.2021
Переверните строку с помощью SSE
Как перевернуть строку с помощью SSE? эта концепция нова для меня, поэтому, пожалуйста, дайте мне немного информации о ней. Причина в том, что кто-то говорит, что использование SSE ускорит код и время выполнения.
Я искал SSE, который равен...
531 просмотров
schedule
17.11.2021
Целочисленное хранилище SIMD
Я пишу программу, использующую инструкции SSE для умножения и сложения целочисленных значений. Я проделал ту же программу с числами с плавающей запятой, но мне не хватает инструкции для моей целочисленной версии.
С помощью чисел с плавающей...
898 просмотров
schedule
16.11.2021
Как реализованы инструкции по сборке в AVX2?
Предположим, я использую AVX2 VGATHERDPS - он должен загрузить 8 чисел с плавающей запятой одинарной точности с использованием 8 индексов DWORD.
Что происходит, когда загружаемые данные находятся в разных строках кеша? Реализована ли инструкция...
6718 просмотров
schedule
26.11.2021
некоторые сомнения относительно циклов ARM NEON
Я написал неоновый код на ассемблере и стремился к максимальной оптимизации. Хотя задержка из-за конфликта регистров и конвейера уменьшена, разница только в 1 цикл, то есть до номера 70-0 после номера 69-0. почему это так, я не понял. вот мой...
204 просмотров
schedule
08.11.2021
Измените размер 8-битного изображения на 4 с помощью ARM NEON
Я хотел бы использовать ARM Neon для изменения размера 8-битного серого изображения в 4 раза с 1280x960 до 320x240.
В качестве примера у меня уже есть изменение размера в 2 раза с 640x480 до 320x240:
void divideimageby2(uint8_t * src, uint8_t *...
1291 просмотров
schedule
10.11.2021
Применение заданной функции к 256-битному вектору с использованием парадигмы SIMD
Есть ли способ оценить функцию по вектору __m256d/s ? Нравится:
#include <immintrin.h>
inline __m256d func(__m256d *a, __m256d *b)
{
return 1 / ((*a + *b) * (*a + *b));
}
int main()
{
__m256d a = _mm256_set_pd(1.0f, 2.0f, 3.0f,...
372 просмотров
schedule
20.11.2021
Индексирование векторов в SIMD
Я работаю с SIMD и пытаюсь векторизовать цикл. Здесь я пытаюсь добавить вектор индексов к указателю слева, чтобы получить значение указателя в этом индексе, а затем продолжить выполнение операций SIMD.
Например, если бы я делал это без SIMD, это...
395 просмотров
schedule
20.11.2021
Как преобразовать символ без знака в целое число со знаком с помощью Neon SIMD
Как преобразовать переменную типа данных uint8_t в int32_t с помощью Neon? Я не мог найти ничего внутреннего для этого.
2572 просмотров
schedule
09.10.2021
Почему этот раздел кода возвращает ошибку ошибки сегментации?
Я векторизирую часть своей программы, но она возвращает Segmentation fault ошибку. Что в этом плохого? Вот упрощенный раздел, который вызывает проблему. j++ и i++ это именно то, что я хочу, я не хочу быть j += 16 .
unsigned short int...
266 просмотров
schedule
17.11.2021
Захват SIGFPE из инструкции SIMD
Я пытаюсь очистить флаг деления с плавающей запятой на ноль, чтобы игнорировать это исключение. Я ожидаю, что с установленным флагом (я считаю, что никаких изменений по сравнению с поведением по умолчанию и закомментировано ниже) мой обработчик...
309 просмотров
schedule
28.11.2021
Проверка регистров NEON SIMD на равенство на всех полосах
Я использую Neon Instrinics с лязгом.
Я хочу проверить два uint32x4_t значения SIMD на равенство по всем полосам. То есть не 4 результата тестов, а один результат, который говорит мне, равны ли A и B для всех полос.
На Intel AVX я бы...
620 просмотров
schedule
12.11.2021