Описание
Задача команды Unicore Solutions состояла в разработке быстрой эффективной реализации классического алгоритма Feldkamp для конического пучка. Проект не допускал компромиссов качества, все оптимизации должны были проводиться без ухудшения конечного результата. Основная задача состояла в обработке данных высокого разрешения, однако эффективность работы с небольшими наборами также должна была оставаться высокой.
Разработанный модуль, интегрированный в ПО Neoscan microCT, поддерживает все стандартные опции, такие как 360/180+ сканирование, коррекцию увеличение жёсткости спектра и кольцевых артефактов, сглаживание, устранение геометрических отклонений, ROI и пр.
Целью процесса оптимизации было разработать решение с использованием CUDA, поддержки нескольких GPU и серверных кластеров. Наивысшая скорость обработки была достигнута за счет тщательной балансировки нагрузки на всему подсистемы GPU, включая доступ к памяти и кешу, текстурные модули, SM'ы. Мы так же реализовали прямой асинхронный доступ к дисковым накопителям и применили прямую работу в основными форматами графических файлов без использования медленных стандартных кодеков.