Я с нетерпением жду ускорения свертки с производной гауссовых ядер (до порядка 2/3) на больших медицинских изображениях (512 x 512 x 1000 double) в одном из наших инструментов с открытым исходным кодом. В настоящее время мы выполняем эту свертку с помощью FFT.Использует ли свертку в ArrayFire FFT?
После того, как вы предложили другу о ArrayFire и после прочтения этого post, я пытаюсь проверить, могу ли я принять этот инструментарий. Похоже, это большое усилие и позволяет нам обрабатывать несколько бэкэндов, хотя в настоящее время я заинтересован в CUDA, так как это то, что у меня есть.
Я прочитал этот post на форуме, в котором говорится, что свертка в ArrayFire переключается на частотную область после определенного размера ядра. Я посмотрел файл cuda convolve.cu, но я не нашел никаких вызовов в fft в ArrayFire или любом из файлов cuFFT. Я что-то упускаю?
Идти вперед, я хотел бы построить производную от гауссова ядра непосредственно в частотной области, умножить на изображение FFT и вернуть ее обратно. Но я хотел бы сравнить ускорения между созданием ядра свертки в пространстве vs freq domain. Кроме того, ArrayFire, похоже, не имеет гауссовского ядра в 3D.
зависит от конкретной проблемы. Я бы предположил где-то до 40х40х40. Но тогда для больших размеров ядра люди могли бы уменьшить изображение и запустить материал через гауссовую пирамиду изображения. – cdeepakroy