2026-08-19 に RTX 5090 上でネイティブ gsplat のビルド成功(1532 rasterizations/s)。要点と“詰まり”の解を残す。
<ローカルの作業パス>\dev\projects\imgevolve\.venv-gsplat(torch 2.11.0+cu128, gsplat 1.5.3)...\BuildTools\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64\cl.exemicromamba create -p <prefix>\cuda128 -c conda-forge "cuda-nvcc=12.8.*" "cuda-cudart-dev=12.8.*" "cuda-cccl=12.8.*" "cuda-nvrtc-dev=12.8.*"
# CUDA_HOME = <prefix>\cuda128\Library, nvcc = Library\bin\nvcc.exe
# torch は lib/x64 を見るので: cp Library/lib/*.lib Library/lib/x64/
call "...\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
set CUDA_PATH=<prefix>\cuda128\Library
set CUDA_HOME=%CUDA_PATH%
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\nvvm\bin;%PATH%
.venv-gsplat\Scripts\python.exe -c "import gsplat, torch; gsplat.rasterization(...)" # 初回に JIT ビルド(~44s)
small マクロ衝突(torch 2.11 Windows バグ):
.venv-gsplat\Lib\site-packages\torch\include\c10\cuda\CUDACachingAllocator.h
の struct StreamSegmentSize 直前に #ifdef small / #undef small / #endif を挿入。
(Windows rpcndr.h の #define small char が bool small を bool char に化けさせるため)-Wno-attributes を MSVC で除去:
.venv-gsplat\Lib\site-packages\gsplat\cuda\_backend.py
extra_cflags = [opt_level] if os.name=="nt" else [opt_level, "-Wno-attributes"]
(cl.exe が GCC 系フラグを D8021 で拒否)gsplat.rasterization 動作、50 回 0.033s = 1532/s。純 torch(非 tiled, gsplat_torch.py)の桁違い高速版として backend 差し替え可能。