암시 적 시간 이산화를 이용한 cuda 및 수치 적 방법


10

IMPLICIT 형식의 유한 체적 방법으로 (시간 이산화) 부분 편미분 방정식 (PDE)을 해결하는 일부 코드를 포팅하려고합니다.

결과적으로 ADI / TDMA 방식으로 처리되는 x, y, z 방향의 3 각 방정식 시스템이 있습니다.

CUDA를 사용한 PDE의 암시 적 솔루션과 관련하여 아무것도 찾을 수 없습니다.

CUDA에서 ADI / TDMA 체계를 구현할 수 있습니까? 어딘가에 2D 열 확산 방정식과 같은 예가 있습니까?

내가 찾을 수있는 것은 유한 차분이지만 EXPLICIT 형식 (Cambridge 대학)의 2D 열 확산 방정식에 대한 CUDA 샘플 코드입니다.

어떤 힌트 / 참조라도 대단히 감사하겠습니다.


2
어떤 종류의 PDE를 사용하고 있습니까? 이 선형, 비선형입니까? 전체 시스템이 3 각형입니까? ( 'x, y, z 방향의 3 각형'의 의미를 이해하지 못합니다). 일반적으로 내부화 된 내부 제품과 불규칙한 통신으로 인해 GPU에서 스파 스 솔버 또는 반복 솔버를 구현하기가 어렵습니다 (그러나 이것이 3 각형 인 경우 통신은 문제가되지 않을 수 있습니다). 편집 : Ok googled ADI, 나 자신에게 사용하지 마십시오. 이 발견하지만 빠른 삼중 대각 해법에 구글 impact.crhc.illinois.edu/shared/papers/sc12_tridiagonal-1.pdf
Reid.Atcheson

링크 주셔서 감사합니다. PDE는 운동량, 질량 및 에너지의 보존 방정식에서 유래하므로 강하게 결합되고 비선형입니다. Nikolai Sakharnykh 씨가 이미 해낸 것 같습니다. 다음은 관심에 대한 링크입니다 nvidia.com/content/GTC/documents/1058_GTC09.pdf가 . 그래도 샘플 코드를 찾을 수 없으면 실제로 도움이 될 것입니다.
Khine

2
SO에 대한 중복 게시물을 삭제하거나 여기에서 마이그레이션을 요청하십시오.
David Ketcheson

답변:


1

이 문제는 매우 벡터화 된 형태에 적합합니다. 언급했듯이 ADI 방법은 몇 단계의 3 각형 시스템을 제공합니다. 선형 방정식의 형태이므로 CUsolverCUblas 를 사용 하여 병렬 GPU 버전의 표준 선형 대수 루틴을 호출 할 수 있습니다 . 이를 사용하면 명시 적 코드를 가져와 내부 루프를 적절한 CUsolver 호출로 변경하고 코드가 CPU 구현과 거의 똑같이 보이지만 GPU에서 매트릭스 작업을 수행하는 방식으로 해결할 수 있어야합니다. 도서관 전화.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.