fullseye

CT 再構成の CPU / GPU 実測(2026-11-02、GPU 第 8 便)

正本の数値は同じ場所の gpu_ct_2026-11-02.json(tools/bench_gpu_ct.py が段ごとに書く)。この表はそこから写した。 機械: RTX 5090(32 GB)、torch 2.11.0+cu128、CPU 24 スレッド。GPU の時間は入力の転送から結果が host に戻るまで。CPU は 1 件 90 秒で打ち切り、外挿しない。

1. 既存の平行ビーム op(CPU 参照 vs GPU、views = 512)

op n CPU s GPU s 倍率 parity 最大差(参照ピーク比)
radon_transform 512 80.1 1.49 * 54x 5.6e-4(138)
radon_transform 1024 打切り(>90) 1.27 — 未照合(CPU 無し)
radon_transform 2048 打切り(>90) 3.50 — 未照合
backproject_sinogram 512 5.54 0.20 28x 1e-4(299)
backproject_sinogram 1024 27.9 0.80 35x 2e-4(599)
backproject_sinogram 2048 107.6(打切り超過) 1.64 66x 6e-4(1197)
filtered_backprojection 512 5.84 0.22 26x <1e-4
filtered_backprojection 1024 28.2 0.49 57x <1e-4
filtered_backprojection 2048 101.5(打切り超過) 1.72 59x 1e-4
sart_reconstruct 512 94.4(打切り超過) 5.15 18x <1e-4
sart_reconstruct 1024 打切り(>90) 5.24 — 未照合
sart_reconstruct 2048 打切り(>90) 10.3 — 未照合

* radon_transform の n=512 は最初の呼び出しで CUDA 初期化・カーネル準備を含む。n=1024 の方が速いのはそのため。定常の値ではない。 「over_limit」は 90 秒を超えて完走した値(参考値)。「打切り」は完走していないので値なし。

2. 体積(ボリューム)

op n views CPU s GPU s 備考
radon_volume 256 180 打切り 5.08 VRAM 4.2 GB
radon_volume 256 512 拒否(寸法上限) 14.3  
fbp_volume 256 180 52.3 2.40(22x) parity 差 <1e-4
fbp_volume 256 512 拒否(寸法上限) 6.73  

3. コーンビーム FDK の実寸

体積 512^3、検出器 768x768、720 view。解析投影 3.57 s + FDK 16.98 s、5.69 Gvoxel·view/s、VRAM ピーク 16.9 GB。CPU 比較は無い(同寸法は CPU では非現実的で、測っていない)。 真値(Shepp-Logan 3-D)との中間断面: PSNR 29.9〜30.8 dB、SSIM 0.88〜0.91。

4. 方式別の画質(96^3、全方式)

方式 views 経路 PSNR dB SSIM(中央) s
cone 192 FDK 24.1 0.80 0.48
helical 768 FDK(近似) 23.9 0.70 0.50
laminography parallel 60° 192 FDK 21.6 0.63 0.06
laminography cone 60° 192 FDK(近似) 21.5 0.62 0.11
fan flat 192 FDK 27.9 0.83 0.02
fan arc 192 FDK 28.0 0.83 0.04
short scan (Parker) 144 FDK 23.3 0.82 0.11
offset detector 192 FDK 23.9 0.68 0.12
tomosynthesis 31 SIRT 17.4 0.87 15.4

トモシンセシスの PSNR が低いのは限られた角度範囲で奥行き方向が決まらないため(SSIM は中央断面)。

5. 反復法の収束(256^3、180 view)

FDK の RMSE 0.046 に対し、OS-SART は 5 反復で 0.066、SIRT は 5 反復で 0.134(反復あたり約 12 s、ウォームアップ込みの初回 約 23 s)。 この寸法・反復数では解析解の FDK が反復法より良い。 反復法が意味を持つのは少数 view・制限角・ノイズ下で、完全データのこの条件ではない。収束は遅く、5 反復では FDK に届いていない(反復を増やした値は測っていない)。

異常値の確認