メモリモデル
Core がストレージを計画し、Scheduler が Runner を通じてプールを準備します。Runner は割り当ての識別、DMA-BUF マッピング、CPU/デバイスアクセスを管理します。
割り当てとビュー
各ステージには、不変の FrameLayout が 1 つあります。これは FrameAllocation のリスト、割り当て内の相対範囲を表す FrameSpan、入力経路、出力の所有権を持ちます。範囲は割り当て、オフセット、予約容量を指定します。論理テンソルの形状、ストライド、公開バイト数とは別です。MLA のハードウェアパディングは予約容量内に収まる必要があります。
ビューはルートキャリアを共有します。割り当てインデックスはバッファーグループ内の番号です。異なるグループでオフセットがともにゼロでも、バッファーは重複しません。インポートしたストレージは、エクスポーター、検証済みオフセット、プレーン形状、生 成元の貸与を維持します。
ストレージに結び付いた密な数値 Tensor では、形状 {} はランク 0 のスカラーを表し、密なデータサイズは dtype の 1 要素分です。これは、密なデータサイズが 0 になる、ゼロ長の次元を含む {0,256} などの形状とは異なります。隙間のないバイトコピーと clone() は、ビューのオフセットとストレージの境界を検証しながらスカラー値を保持します。ストレージを持たないデフォルトの Tensor では dense_bytes_tight() は 0 を返し、隙間のないコピーとクローン作成は拒否されます。エンコード済み、バイトストリーム、テッセレーション済み、テキストと明示された搬送バッファは、従来の搬送バイトの意味を維持します。公開 map() が返すバイト範囲は変わりません。
配置
Core は経路と実行先を決定し、検証済みレシピ、キャリア、所有権を解決して、アクセスと寿命の根拠に基づき配置します。ステージのレイアウトと公開情報は一度だけ確定します。
- EV74 がアクセスする場合は CMA が必須です。
- 所有する MLA/A65 専用キャリアは、デフォルトで DMS を使用します。
- 条件を満たす新規 A65 公開終端は HostCpu ストレージを使用できます。
- インポートしたストレージの配置は固定です。ファンアウトでは全消費者を考慮し、ビューはキャリアのポリシーを維持します。
AllocationPolicy::PreferDmsThenCma は、対象となる所有 DMS 割り当てで容量不足が起きた場合に、CMA へフォールバックする明示的な指定です。通常の Linux メモリへのフォールバックは許可しません。Queue 境界、独立したモデル呼び出し、保持された出力は、所有権と寿命の制約を維持します。
EV74 Preproc → MLA → A65 BoxDecode では、推論入力は CMA を使い、MLA 出力は独立した DMS 割り当てを使います。実際の配置は、全消費者の確定した実行先で決まります。
所有権と CPU マッピング
ゼロコピー出力は、アプリケーションが保持している間、ストレージと生成元の貸与を維持します。Scheduler と Runner は、デバイスの確定的な完了まで入力を保持します。タイムアウトやキャンセルだけでは再利用できません。
TensorBuffer::map() を適切な MapMode で使用してください。Mapping は閉じるまで検証済みアクセスとストレージを保持します。互換性のある読み取りは共有できますが、書き込みは排他的です。必要なキャッシュ保守は CPU 読み取りの前と書き込みの後に行い、隣接するキャッシュラインのバイトも保持します。同期に失敗したストレージは隔離されます。
所有するキャッシュ付き CMA と DMS は、受け入れ済みの SimaHeap 範囲 API を使います。インポートしたバッファーはエクスポ ーターの契約を維持します。デバイスのみの後続処理は CPU 読み取りエポックを開始しません。CPU アクセスをノード名やグラフ内の位置から推測しません。内部 CPU バッチは、全子アクセスが退役するまで親を保持します。
メタデータ用エンベロープはペイロードをコピーせずメモリを共有できます。ただし、型変換、明示的な転送、Owned 出力ではコピーが発生し得ます。ゼロコピーは、すべてのステージがインプレースで動作するという意味ではありません。
カメラバッファー
CameraInput は、キャプチャした DMA-BUF のレイアウトを検証し、後続の消費者が使用する間、カメラの親バッファーを保持します。互換性のあるバッファーはストレージとプレーン形状を維持します。レイアウトの適応が必要で allow_cpu_fallback が有効な場合、ブリッジは明示的な CMA コピーを作成します。ソースの適応とモデルの前処理は別です。
関連する型
TensorBuffer: ストレージとビュー。Segment: 保持された割り当て範囲。Mapping: スコープ付き CPU アクセス。MemoryContract: ノードが宣言するメモリ要件。