Không thực sự là một thuật toán chính thức cho việc này; nói chung, các loại hoạt động đại số tuyến tính mà toàn bộ vấn đề không được lưu trữ trong bộ nhớ đồng thời được gọi là hoạt động "ngoài lõi".
Để giải quyết nó, bạn không cần một thuật toán đặc biệt phức tạp, chỉ cần thư viện CUBLAS và bút chì và giấy. Ví dụ, bạn có thể phân hủy các sản phẩm ma trận như thế này:
mà cung cấp cho bạn bốn hoạt động nhân tiểu ma trận độc lập. Đây có thể được tính toán bằng cách sử dụng bốn cuộc gọi đến CUBLAS gemm bằng cách sử dụng mã máy chủ rất đơn giản. Bạn có thể mở rộng ý tưởng cho nhiều ma trận phụ như được yêu cầu để phù hợp với kích thước vấn đề và dung lượng GPU của bạn. Nguyên tắc tương tự cũng có thể được sử dụng để thực hiện các vấn đề nhân ma trận trên nhiều GPU (xem this question để biết ví dụ). Thay vào đó, bạn có thể tìm thấy việc triển khai thực hiện ý tưởng chính xác này ở Harvard đã phát triển hệ thống mã hóa SciGPU-GEMM và trong việc triển khai linpack HPL-CUDA (tuyên bố từ chối trách nhiệm: Tôi liên kết với codebase thứ hai).
Điều gì đơn giản là chia các ma trận như '[A0; A1] * [B0 B1] = [A0 * B0 A0 * B1; A1 * B0 A1 * B1] '? Đó có thể là một khởi đầu tốt. – kangshiyin