Search papers, labs, and topics across Lattice.
This paper introduces a fused CUDA kernel for matrix-free 3D SIMP topology optimization, eliminating DRAM traffic between gather, multiplication, and scatter stages. By implementing this kernel using CuPy's runtime compilation, the authors achieve significant end-to-end speedups (4.6-7.3x) compared to a conventional three-stage implementation on an RTX 4090. They also demonstrate improved energy efficiency and explore the limitations of BF16 precision for this application due to conditioning issues.
Fusing gather, GEMM, and scatter operations in a single CUDA kernel slashes SIMP topology optimization runtime by up to 7.3x, proving that optimized kernel fusion can still yield massive gains even in memory-bound scientific computing.
The matrix-free gather-batched-GEMM-scatter pattern eliminates global stiffness assembly for three-dimensional SIMP topology optimization, but the conventional three-stage implementation forces avoidable DRAM traffic between stages. We present a single fused CUDA kernel, implemented through CuPy's runtime compilation interface, that performs gather, per-element stiffness multiplication, and scatter accumulation in one pass. On a single RTX 4090 (24 GB), the fused path reaches a problem-size-dependent 4.6-7.3x end-to-end SIMP wall-time speedup across 216k-4.9M cantilever elements and 4.4x on the 499,125-element torsion benchmark. Against the same-precision FP32 three-stage baseline, the fused path still yields 2.3-4.6x on cantilever and 2.8x on torsion. Isolated CUDA-event cantilever-operator measurements reach 8.9-13.8x per matvec call, while separate instrumented board-power traces at 216k and 1M show 3.2-4.9x lower energy than matched FP64 runs. A separate bridge stress test shows the same FP32-versus-FP64 three-stage trend under one distributed-load case; direct fused-kernel bridge benchmarks are not reported. We also evaluate a BF16 WMMA variant: a separate PyTorch BF16 GEMM proxy on matching tensor shapes yields 14.3x, but direct condition-number estimates of 6.1e5-2.3e6 across 64k-512k uniform-density test states imply BF16 conditioning products of 2.4e3-9.1e3, far above the 256 threshold, observed alongside BF16 iterative-refinement stagnation at the two tested inner tolerances.