Documentation: GPU for the indirect method (flows and shooting)

Đang mở
#976 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@ocots đang làm issue này rồi.

Từ ngày 11/10/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

Summary

The documentation covers the GPU for the direct method only. The page GPU (docs/src/solve/gpu.md) walks through solve(ocp; modeler=:exa_gpu, …): prerequisites, a worked problem, descriptive and explicit modes, which combinations work, performance notes.

The indirect method has nothing equivalent. The Flows overview has a short section "CPU and GPU" (docs/src/flows/overview.md) that says Flow(ocp, law; method=:gpu) exists, that the initial state and costate must be CuArrays, and sends the reader to the GPU flows page of CTFlows. A reader who wants to shoot on the GPU has no worked example in this documentation.

Proposal

Add a page (or a section next to the direct one) on the GPU for flows and shooting, built like the direct page:

  • prerequisites (CUDA, Mooncake, the integrator package) and the method=:gpu keyword of the constructor (not of the call);
  • one worked problem: build Flow(ocp, law; method=:gpu), give CuArray initial state and costate, integrate, and check the result against the CPU flow;
  • a shooting function evaluated on the GPU, with the solver of the nonlinear system on the CPU or GPU (to be checked: what CTFlows supports and what is useful in practice);
  • what does not work (CPU arrays with method=:gpu, Mooncake not loaded) and the error the user gets;
  • performance notes: when it pays off (large dimension or many trajectories), consistent with control-toolbox/CTFlows.jl#448 (Mooncake on CPU) and the ensemble flows of control-toolbox/CTFlows.jl#341.

Constraints

  • The GPU blocks cannot be executed by the usual docs build: the direct page runs on the occidata runner (see #885 and #946). The new page should follow the same mechanism, with the output of the last run shown and checked by @asserts on the runner.
  • Depends on the CTFlows side: control-toolbox/CTFlows.jl#436 (obscure MethodErrors of method=:gpu) is closed, so the errors can be quoted once released; the "CPU and GPU" section of the Flows overview, which says the error "does not name the cause yet", must then be updated.

Part of the final read tracked in #968.

Ngôn ngữ chính
Julia
Star
135
Fork
11
Merge trung bình
7 giờ 51 phút
Pull request đã merge (30 ngày)
22

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của control-toolbox/OptimalControl.jl

Tất cả issue của control-toolbox/OptimalControl.jl

Issue tương tự

Thêm issue về Julia

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.