ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 апреля
706213 Топик полностью
Ксения (17.10.2016 00:53, просмотров: 184) ответил fk0 на gcc (-mavx2 -march=haswell -mfpmath=sse -O3, gcc=6.2) -- для "упакованных флоатов" в gcc нужно встроенные функции использовать -- тот же ассемблер получается...
А что, очень даже приличный код. Признаюсь, не ожидала. Странно только, что использует более короткие xmm-регистры вместо вдвое более длинных ymm. Именно это и портит всю малину, снижая скорость вдвое. Причем ymm обязаны быть, если это Haswell, тем более что вижу крутую FMA-команду vfmadd231sd, которая бывает только на AVX2. Скажите, а у параметра -mfpmath=sse нет ли других значений? Скажем -mfpmath=avx или -mfpmath=avx2? Может быть, gcc можно раскрутить на большее? Кстати, для будущей платформы AVX512 пишется почти так же, только xmm-регистры заменяются не на ymm, а на еще более длинные zmm. Ну и шаг тогда будет не $8, а $32. Причем, до сих пор я не нашла ассемблера, который бы AVX512-команды понимал, хотя, судя по интернету, народ для него уже пишет - счастливые обладатели Xeon Psi. :)