Repository navigation
0.2.0
CUDA tensor and scalar replay are now validated on NVIDIA hardware.
- Implement device-local CUDA fill, fixing compiled tensor gradients.
- Fix incorrect results in interpreted and eager scalar CUDA replay caused by stale opcode numbers. Kernel opcodes now derive from the Java enum.
- Add explicit CUDA hardware regression tests and document setup, coverage and remaining limits.
- Set all seven module versions to 0.2.0.
Validation (Java 25, Linux x86_64):
- All-module clean verify passed with cuda, rocm, examples and simd profiles.
- NVIDIA GTX 1060 on zbox, driver 580.178.04 and NVRTC 12: 23 CUDA checks passed (5 tensor, 18 scalar). Scalar checks cover cuda, cuda-interp and cuda-eager in FP32/FP64, values/adjoints, updated inputs, and normal random replay against CPU results.
- Local Vulkan: 31 checks passed. Local wgpu-native: 36 checks passed.
- Core: 51 passed, 1 skipped. Examples: 8 passed. No failures or errors.
Requirements and limits:
- Java 25; CUDA requires the NVIDIA driver and NVRTC. Native GPU libraries are not bundled. Use --enable-native-access=ALL-UNNAMED; SIMD additionally requires --add-modules jdk.incubator.vector.
- CUDA tensor execution is F32 on device 0. Scalar CUDA replay rejects multi-output tapes, uniform draws and named random streams. This validation does not establish full transform or performance parity. ROCm hardware and SIMD execution remain unverified.
- Seven binary module JARs and SHA256SUMS are attached. The parent jax4j artifact is a POM. Version 0.2.0 is also published to Maven Central under com.nablatensor (parent POM plus six library modules; examples remain GitHub-only). Central binary JARs match these GitHub assets byte for byte.
Build from the source tag:
git clone --branch v0.2.0 --depth 1 https://github.com/nablatensor-dev/jax4j.git
cd jax4j
mvn -Pcuda,rocm,examples,simd clean verify
# On an NVIDIA host:
mvn -Pcuda -Djax4j.cuda.tests=true clean verify