Вопросы по теме 'auto-vectorization'
Развертывание цикла приращения указателя для автоматической векторизации
Мне было интересно, если развернуть этот цикл:
for (int i = 0; i < n; i++) {
*p = a[i]*b[i];
p++;
}
в
for (int i = 0; i < n; i+=4) {
*(p + 0) = a[i + 0]*b[i + 0];
*(p + 1) = a[i + 1]*b[i + 1];
*(p + 2) = a[i +...
413 просмотров
schedule
29.05.2024
Испускают ли компиляторы обычно векторные (SIMD) инструкции, когда не говорят об этом явно?
C ++ 17 добавляет расширения для параллелизма в стандартную библиотеку (например, std::sort(std::execution::par_unseq, arr, arr + 1000) , что позволяет выполнять сортировку с использованием нескольких потоков и векторных инструкций).
Я заметил,...
1822 просмотров
schedule
29.03.2022
Почему #pragma omp simd значительно улучшает производительность только в -O2 под компилятором gcc?
Проверьте следующий код:
#include <stdio.h>
#include <omp.h>
#define ARRAY_SIZE (1024)
float A[ARRAY_SIZE];
float B[ARRAY_SIZE];
float C[ARRAY_SIZE];
int main(void)
{
for (int i = 0; i < ARRAY_SIZE; i++)
{
A[i]...
2166 просмотров
schedule
18.11.2022
Автовекторизация Java
Я пытаюсь понять, когда JDK будет автоматически векторизоваться. У меня есть следующий набор вопросов (несмотря на гугление, чтение, эксперименты и т.д.). Учитывая простой цикл следующим образом:
for(int i=0; size = size(); i < size; i++) {...
527 просмотров
schedule
11.12.2023
Есть ли способ автоматически генерировать инструкции MMX (не SSE) с помощью gcc
Похоже, что gcc с радостью выполнит автоматическую векторизацию простых примеров и выдаст инструкции SSE. Есть ли способ выдавать только инструкции MMX?
Например, если я попробую следующий пример на Godbolt:
int sumint(int *arr) {
int sum...
114 просмотров
schedule
10.07.2023