BROKER SEGUR - Rio Ulla 7 , Madrid

cuda fft 예제

가장 일반적인 경우는 개발자가 기존 CUDA 루틴(예: filename.cu)을 수정하여 cuFFT 루틴을 호출하는 것입니다. 이 경우 포함 파일 cufft.h 또는 cufftXt.h는 filename.cu 파일및 링크 라인에 포함된 라이브러리에 삽입되어야 합니다. 단일 컴파일 및 링크 줄은 예를 들어 4개의 GPU에서 2D 변환으로 나타날 수 있으며, C에서 선언된 배열을 data[x][y]로 선언하고 x는 65이고 y는 99입니다. 표면은 GPU 0이 치수가 있는 표면을 수신하도록 변환하기 전에 분산되고 GPU 1…3은 치수가 있는 표면을 수신합니다[16][99]. 변환 후 각 GPU는 다시 표면의 일부를 가지지만 y 차원에서 분할됩니다. GPU 0…2에는 치수가 있는 표면[65][25]이 있습니다. GPU 3에는 [65][24] 아래의 크기가 있는 표면이 함수 프로토타입이며, 변환이 완료된 후 데이터를 저장하기 위해 cuFFT가 호출하는 사용자 에 대한 포인터에 대한 typedefs가 있습니다. 저장소 콜백 함수는 값을 반환하지 않습니다. 이는 저장소 콜백 함수가 원하는 대로 데이터를 변환할 뿐만 아니라 원하는 위치에 데이터를 작성할 책임이 있기 때문입니다. 이를 통해 저장소 콜백은 데이터를 다시 정렬할 수 있습니다(예: 0 주파수 결과를 ouput의 중심으로 이동). 이 예제에서는 복합-복합 변환을 사용하여 1차원 컨볼루션이 계산됩니다.

예를 들어, 아웃 오브-오브-실-복합 변환의 출력을 위한 3차원 배열의 정적 선언은 다음과 같습니다. 출력 데이터는 GPU 메모리에서 자연스럽게 정렬됩니다. 이 예제에서는 입력 데이터에 1차원 실제-복합 변환이 적용됩니다. 변환 일괄 처리의 경우 각 개별 변환은 단일 GPU에서 실행됩니다. 가능하면 일괄 처리가 GPU 간에 균등하게 분포됩니다. m이 n으로 나눌 수 없는 n GPU에서 수행되는 크기 m의 배치의 경우 첫 번째 m % n GPU는 m n + 1 변환을 수행합니다. 나머지 GPU는 m n 변환을 수행합니다. 예를 들어 4개의 GPU에서 수행되는 15개의 변환 일괄 처리에서 처음 3개의 GPU는 4개의 변환을 수행하고 마지막 GPU는 3개의 변환을 수행합니다. 이 방법을 사용하면 GPU 간에 데이터 교환이 필요하지 않으며 GPU 수에 따라 일괄 처리 크기가 나눌 수 있는 경우에 대해 거의 완벽한 크기 조정이 가능합니다. 이 예제에서는 입력 데이터에 1차원 복합-복합 변환이 적용됩니다. 그런 다음 계산된 주파수 도메인 표현에서 역 변환이 수행됩니다. 이 예제에서는 GPU 코더™ 사용 하 여 CUDA® 빠른 푸리에 변환 라이브러리 (cuFFT) 및 엔비디아® GPU에 2 차원 FFT를 계산 하는 방법을 보여 줍니다.

2차원 푸리에 변환은 광학에 사용되어 원거리 회절 패턴을 계산합니다. 이러한 회절 패턴은 단색 광원이 Young의 이중 슬릿 실험과 같이 작은 조리개를 통과할 때 관찰됩니다. cuFFT 라이브러리는 이진 호환성(예: 낮은 아키텍처에 대한 코드가 있는 경우 특정 아키텍처에 대한 코드를 포함하지 않을 수 있습니다. SM37, SM52, SM61). 이는 위의 링크 명령에 반영되며 이전 r9.0 버전을 사용할 때 중요합니다. 특정 SM이 cuFFT 라이브러리에 포함되어 있는지 확인하려면 cuobjdump 유틸리티를 사용할 수 있습니다. 예를 들어 SM_50이 포함되어 있는지 알고 자하는 경우 실행할 명령은 cuobjdump -arch sm_50 libcufft_static.a입니다.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies