matmul_ozaki — DRIVE ozaki op

• 데이터 종류: matrix × matrix → matrix

• 호출: import fullseye as fs; fs.ledger.matmul_ozaki(A, B, n_slices=None, scheme: 'str' = 'ozaki1', tol: 'float' = 1.1102230246251565e-16, on_insufficient: 'str' = 'raise', return_info: 'bool' = False)(구현을 직접 호출하려면 import ozakimm; ozakimm.matmul_ozaki(A, B, n_slices=None, scheme: 'str' = 'ozaki1', tol: 'float' = 1.1102230246251565e-16, on_insufficient: 'str' = 'raise', return_info: 'bool' = False), 원장에서 가져오려면 opsdrive.get("matmul_ozaki"))

사용법

정확한 저정밀도 부분곱으로부터 FP64 정밀도의 행렬곱 A @ B를 조립합니다(Ozaki-I / Ozaki-II).

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

scheme="ozaki1": n_slices 枚に切る(積 n(n+1)/2 回)。n_slices=None なら、誤差の保証上界が tol · (|A||B|)_ij 以下になる最少の枚数を自動で選ぶ(1〜16 枚)。届かなければ on_insufficient="raise" で ValueError、"fallback" で普通の float64 の積を返す(この場合だけ再現性の約束は外れる。return_info=True の fallback で分かる)。scheme="ozaki2": 法の数を n_slices(2〜20)で必ず指定する(積 n 回)。自動の選択は無い。return_info=True で (C, info)(n_slices・n_products・scheme・fallback)。

どちらの方式も、同じ入力なら内側の並べ替え・BLAS のスレッド数に依らず同じビット。CPU では DGEMM より 1〜2 桁遅い(module の docstring の使い分けを参照)。

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_reproducible_icp — py -3.11 examples/poc_reproducible_icp.py

타입이 이어지는 다음 연산자(matrix 를 입력으로 받는 것)

world_camera · lidar_scan · relative_motion · foe_from_motion · flow_from_depth_motion · ttc_truth · world_materials · mesh_signed_volume

같은 카테고리(ozaki)

matmul_reproducible · ozaki_error_bound · cross_covariance_reproducible · kabsch_reproducible · fp64_emulation_probe


*Provenance: ozakimm.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.