Почему этот SIMD-код не показывает лучшую производительность?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему этот SIMD-код не показывает лучшую производительность?

Сообщение Anonymous »

Я написал простой код для проверки производительности и настройки данных:
#include
#include
#include
#include

unsigned t0, t1;

struct VAL
{
union
{
float val[4];
__m128 val_simd;
};
};

int main()
{
unsigned t0, t1;
double time;
VAL *a, *b, *c;
unsigned test_num = 100000000;

a = new VAL[test_num];
b = new VAL[test_num];
c = new VAL[test_num];

t0 = clock();
for (int i = 0; i < test_num; i++)
{
a.val[0] = static_cast (rand()) / static_cast (RAND_MAX);
a.val[1] = static_cast (rand()) / static_cast (RAND_MAX);
a.val[2] = static_cast (rand()) / static_cast (RAND_MAX);
a.val[3] = static_cast (rand()) / static_cast (RAND_MAX);
b.val[0] = static_cast (rand()) / static_cast (RAND_MAX);
b.val[1] = static_cast (rand()) / static_cast (RAND_MAX);
b.val[2] = static_cast (rand()) / static_cast (RAND_MAX);
b.val[3] = static_cast (rand()) / static_cast (RAND_MAX);
c.val[0] = 0.0f;
c.val[1] = 0.0f;
c[i].val[2] = 0.0f;
c[i].val[3] = 0.0f;
}
t1 = clock();
time = (double(t1 - t0) / CLOCKS_PER_SEC);
std::cout

Подробнее здесь: https://stackoverflow.com/questions/786 ... erformance
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»