cuda và phương pháp số với sự rời rạc thời gian ngầm


10

Tôi đang tìm cách chuyển một số mã giải quyết một tập hợp các phương trình vi phân từng phần (PDE) bằng phương pháp khối lượng hữu hạn ở dạng IMPLICIT (cho thời gian rời rạc).

Kết quả là có một hệ phương trình ba cực theo các hướng x, y, z được xử lý bởi sơ đồ ADI / TDMA.

Tôi dường như không thể tìm thấy bất cứ điều gì liên quan đến giải pháp ngầm của PDEs với CUDA.

Đề án ADI / TDMA có thể thực hiện trong CUDA không ?? Có một ví dụ như phương trình khuếch tán nhiệt 2D có sẵn ở đâu đó không ??

Tất cả những gì tôi có thể tìm thấy là một mã mẫu CUDA cho phương trình khuếch tán nhiệt 2D với sự khác biệt hữu hạn nhưng ở dạng EXPLICIT (Đại học Cambridge).

Bất kỳ gợi ý / tài liệu tham khảo sẽ được đánh giá rất cao.


2
Bạn đang làm việc với loại PDE nào? Đây là tuyến tính, phi tuyến? Là toàn bộ hệ thống của bạn tridia chéo? (Tôi không hiểu ý của bạn là 'tridia chéo theo hướng x, y, z'). Nhìn chung, khó có thể thực hiện các bộ giải thưa thớt hoặc bộ giải lặp trên GPU vì các sản phẩm bên trong toàn cầu hóa và giao tiếp không đều (nhưng giao tiếp có thể ít gặp vấn đề hơn nếu đây là tridia chéo). Chỉnh sửa: Ok googled ADI, không bao giờ sử dụng nó trước bản thân mình. Google tìm kiếm nhanh trên các bộ giải ba đường dẫn mặc dù đã tìm thấy điều này: Impact.crhc.illinois.edu/ Shared / con / sc12_tridia Cross
1.pdf

Cảm ơn vi đương link. Các PDE là từ các phương trình bảo tồn động lượng, khối lượng và năng lượng nên chúng được kết hợp mạnh mẽ và phi tuyến tính. Có vẻ như ngài Nikolai Sakharnykh đã làm điều đó rồi. Đây là liên kết cho những người quan tâm: nvidia.com/content/GTC/document/1058_GTC09.pdf . Không thể tìm thấy một mã mẫu mặc dù, điều đó thực sự có ích.
Khine

2
Vui lòng xóa bài đăng trùng lặp của bạn trên SO, hoặc yêu cầu nó được di chuyển ở đây.
David Ketcheson

Câu trả lời:


1

Vấn đề này cho vay chính nó đến một hình thức vector hóa cao. Như bạn đã lưu ý, phương pháp ADI đưa ra một vài bước của hệ thống ba cực. Vì nó ở dạng phương trình tuyến tính, bạn có thể sử dụng CUsolverCUblas để gọi các phiên bản GPU song song của các thói quen đại số tuyến tính tiêu chuẩn. Sử dụng chúng, bạn sẽ có thể lấy mã rõ ràng và chỉ cần thay đổi vòng lặp bên trong thành một cuộc gọi CUsolver thích hợp và giải quyết nó theo cách mà mã trông gần giống như cách triển khai CPU, nhưng với các hoạt động ma trận được thực hiện trên GPU thông qua thư viện gọi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.