Тема: Швидкість AVX2
Чи я правильно її вимірюю, чи може я щось не так зрозумів ?
#include <immintrin.h>
#include <iostream>
#include <conio.h>
#include <Windows.h>
void AVX2performance()
{
__m256 evens = _mm256_set_ps(2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0);
__m256 odds = _mm256_set_ps(1.0, 3.0, 5.0, 7.0, 9.0, 11.0, 13.0, 15.0);
__m256 result;
LARGE_INTEGER start = { 0 }, end = { 0 }, freq = { 0 };
QueryPerformanceCounter(&start);
for (unsigned int i = 0; i < 0xFFFFFFFF; i++)
{
result = _mm256_sub_ps(evens, odds);
}
QueryPerformanceCounter(&end);
QueryPerformanceFrequency(&freq);
printf("time seconds: %lf\n", (end.QuadPart - start.QuadPart)/(double)freq.QuadPart);
}
int main()
{
for (int i = 0; i < 10; i++)
{
printf("taking sample: %d,", i + 1);
AVX2performance();
printf("\n");
}
_getch();
}
vs2019, x64, підтримка AVX2 у кодегенерації увімкнута.