ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
773504 Топик полностью
Ксения (10.08.2017 01:53 - 02:02, просмотров: 160) ответил Adept на и как? сей мазохизм героизм оправдан ?? Есть ли выйгрыш по скорости счёта?? А то бытует мнение, что на современных архитектурах компилятор делает всё гораздо оптимальнее обычного программиста (нисколько не сомневаюсь, что на ассемблере
Оцените сами: Нахождение максимального элемента в массиве (время исполнения) float-массив: max_f0: 1296 ms // компилятор C/C++ max_f1: 1625 ms // ассемблер для FPU max_f4: 109 ms // ассемблер для SSE2 (сравнивает 4 элемента одновременно) max_f8: 62 ms // ассемблер для AVX (сравнивает 8 элементов одновременно) double-массив: max_d0: 1281 ms // компилятор C/C++ max_d1: 1812 ms // ассемблер для FPU max_d2: 203 ms // ассемблер для SSE2 (сравнивает 2 элемента одновременно) max_d4: 125 ms // ассемблер для AVX (сравнивает 4 элемента одновременно) Ускорение происходит за счет того, что компилятор не использует "упакованную арифметику", а на ассемблере я ее использую. Выигрыш в скорости (если у процессора есть AVX) для double - в 10 раз, для float - в 20 раз.