16+
Четверг
19 октября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Средства и методы разработки

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Ксения  (10.08.2017 09:07) , в ответ на Ещё есть же ключи компиляции, которые указывают какое расширение использовать. автор: =AlexD=
Нет таких ключей, т.к. использование упакованной арифметики (когда в длинные SIMD-регистры загружаются сразу несколько аргументов) нетривиально. Скажем, у AVX длина такого регистра 256 бит и в него влезают сразу 8 float'ов, что позволяет 
обрабатывать массив в цикле не с единичным с шагом, а сразу восьмерками. Однако в этом случае и счетчик/указатель тоже надо инкрементировать не на 1, а на 8. А в том случае, если число элементов в массиве нацело на 8 не делится, то обработать остаток отдельно, а результат присовокупить к общему (когда накапливается какая-то сумма). Поэтому остаток надо либо с единичным шагом проходить, не пользуясь упакованной арифметикой, или пользоваться ею с наложением маски (предпочтительный вариант), когда в длинные SIMD-регистры загружаются не все 8 чисел, а меньшее их число. При этом ту маску надо еще вычислить в зависимости от размера остатка от деления на 8. В тех случаях, когда требуется накопить общую сумму, то следует учесть, что после блочного сложения получится не одна сумма, тоже 8 частных сумма, т.к. сложение происходило восьмерками, а потому эти 8 сумм в самом конце следует сложить в одну общую сумму. Аналогичные операции требуются и при нахождении min и max по всей длине массива - там тоже образуется 8 кандидатов, из которых в самом конце следует выбрать одного. Короче говоря, всё это достаточно нетривиально, чтобы компилятор мог бы сделать самостоятельно.
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII