문제

HLSL/GLSL/CG에서 역 FFT의 구현을 아는 사람이 있습니까?

그것은 나에게 많은 일을 구할 것입니다.

최고, 하인리히

도움이 되었습니까?

해결책

DirectX11은 컴퓨팅 셰이더를위한 FFT 예제가 함께 제공됩니다 ( DX11 8 월 SDK 릴리스 노트). PerealLenwebb가 지적했듯이, 이것은 역 FFT에도 사용될 수 있습니다.

편집 : 빠른 FFT를 원한다면 GPU에서 실행되는 Cufft를 사용해 볼 수 있습니다. Cuda SDK의 일부입니다. AMD의 AMCL에는 FFT가 있으며 현재 GPU 가속되지 않은 FFT가 있지만 곧 추가 될 것입니다.

다른 팁

이미 FFT 구현이 있습니까? 이미 알 수 있지만 N 입력의 순서를 역전시키고 FFT를 사용하여 결과를 N으로 나누면 역수를 계산할 수 있습니다.

2005 년에 7800GTX 하드웨어에서 1D FFT를 구현했습니다. 이것은 CUDA 이전이기 전까지 CG를 사용하고 수동으로 FFT를 구현해야했습니다.

두 개의 FFT 구현이 있습니다. 하나는 시간 FFT의 Radix2 Decimation이고 다른 하나는 Stockham Autosort FFT입니다. Stockham은 더 큰 크기 (> 8192)의 경우 CPU (3GHz P4 단일 코어)보다 약 2-4 배 더 빠르지 만 더 작은 크기의 경우 GPU에서 데이터를 전환 할 필요가 없으므로 CPU가 더 빠릅니다. .

셰이더 코드에 관심이 있으시면 언제든지 저에게 연락하여 이메일로 보내 드리겠습니다. 그것은 개인 프로젝트에서 나온 것이 었으므로 상업적 저작권에 의해 다루지 않았습니다. Cuda (및 유사한) 구현이 내 구현을 크게 능가 할 것이라고 생각하지만 학습 관점에서 코드를 직접 작성하거나 연구하는 것보다 나아질 수는 없습니다!

어쩌면 그래픽 (및 기타) 하드웨어에서 범용 컴퓨팅의 표준 인 OpenCL을 살펴볼 수 있습니다.
Wikipedia 기사에는 표준 FFT에 대한 OpenCl 예제가 포함되어 있습니다.
http://en.wikipedia.org/wiki/opencl#example

OS X 10.6이있는 MAC에있는 경우 OpenCL 개발을 시작하려면 개발자 도구를 설치하면됩니다. 또한 하드웨어 공급 업체가 이미 Windows에서 기본 OpenCL 드라이버 지원을 제공한다고 들었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top