надо оптимизировать выполнение программы по времени выполнения, с помощью флагов компиляции, программа делает быстрое преобразование Фурье?
fp model
Тут лучше использовать специальные библиотеки, например, Intel IPP. Ключи компиляции много не дадут.
Ты предлагаешь ему интринсики?
Я предлагаю ему взять готовую библиотеку, в которой fft уже написана на ассемблере максимально эффективно.
А тебя скорость не устраивает?
Ага, но советы отсюда уже помогли. Особенно с Intel.
Просто когда я сам делал ффт, с -O1 у меня уже было достаточно шустро
Это странно, написать хорошую реализацию ффт такое себе удовольствие
всё зависит от того что считать хорошим, наверное, у меня оно могло выводить спектр из 512 элементов на скорости достаточной для рендера если не быстрее, да и ещё не жрало ядро процессора полностью
512*512 дабловая картинка на мобилке в секунду проходит
вот гист с кодом который я в результате получил https://gist.github.com/disba1ancer/bf3b0a51ac90de6a92a3005e18a928d7
я не умею в 2д делать
Ну 512 - это очень мало, если бы размер fft был несколько миллионов, то наверняка бы простой реализации не хватило.
я сейчас чекнул код, по коду вроде как оно 2к элементов преобразовывало в 1к каждые 3мс, при этом только одно ядро нагружено на треть (это с учётом рендера полученных графиков) может это и не быстро, но мне хватило, а быстрее может и имеет смысл взять готовую либу
про 3мс, я наверное всё-таки наврал, скорее всего 10
Обсуждают сегодня