Skip to content

Releases: nablatensor-dev/jax4j

0.2.1

Choose a tag to compare

@petrpravda petrpravda released this 19 Oct 15:49

JAX4J 0.2.1 corrects the Java namespace to com.nablatensor.jax4j across every module, including generated JIT classes, service descriptors, examples and documentation. Update application imports when upgrading; this is a source and binary incompatible package migration. Maven coordinates remain com.nablatensor.

  • All seven modules build with Java 25; ordinary and Vulkan/wgpu hardware test suites pass: 126 checks passed, 8 skipped, zero failures/errors. Vulkan passed 31 checks and wgpu passed 36.
  • CUDA compiles, but execution could not be revalidated: no local CUDA driver and the previous validation host was unreachable. ROCm and SIMD execution also remain unverified.
  • Sources and signed Javadoc artifacts are generated by the committed central-artifacts profile. Javadoc omits bundled fonts.
  • Native GPU libraries are not bundled. Use --enable-native-access=ALL-UNNAMED; SIMD additionally requires --add-modules jdk.incubator.vector.
  • Existing engine limitations are unchanged: CUDA scalar replay rejects multi-output tapes, uniform draws and named random streams.

Build from the tag with mvn -Pcuda,rocm,examples,simd clean verify. Applications normally depend on com.nablatensor:jax4j-core:0.2.1 plus the desired engine modules; the parent jax4j artifact is a POM. Examples are GitHub-only. SHA256SUMS covers all seven binary JARs.

Maven Central publication has been validated and submitted. Deployment 106d2fb4-948d-4fd5-8ade-a300144134cf currently reports PUBLISHING; public artifact availability is not confirmed. Central reported a monthly publishing quota warning. See the repository release status document for details.

0.2.0

Choose a tag to compare

@petrpravda petrpravda released this 18 Oct 17:30

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

0.1.0

Choose a tag to compare

@petrpravda petrpravda released this 18 Oct 13:49

Initial release of JAX4J: Java 25 tensors, automatic differentiation and neural networks.

Included

  • CPU tensor execution, fused JIT, batching, structured transforms, autodiff, neural-network layers and Adam optimizers.
  • Vulkan and wgpu-native tensor engines, with shared GPU kernels and device-resident execution.
  • Consolidated CUDA and ROCm runtime/replay modules, optional SIMD replay, and an MNIST MLP example.
  • Seven module JARs and SHA-256 checksums. GitHub also supplies source archives.

Validation and requirements

All modules passed mvn -Pcuda,rocm,examples,simd -Djax4j.vulkan.tests=true -Djax4j.wgpu.tests=true clean verify: 126 tests passed, 1 existing test skipped, with no failures or errors. Vulkan and wgpu hardware suites were enabled. CUDA/ROCm compilation and packaging passed; their native execution remains unverified.

Java 25 is required. GPU native libraries are installed separately; they are not included in the JARs. Native execution uses --enable-native-access=ALL-UNNAMED; SIMD additionally requires --add-modules jdk.incubator.vector. Tensor execution is currently F32; the remaining roadmap and limitations are documented in implementation status.

Build from source

git clone --branch v0.1.0 --depth 1 https://github.com/nablatensor-dev/jax4j.git
cd jax4j
mvn -Pcuda,rocm,examples,simd -DskipTests install

Maven group: com.nablatensor; version: 0.1.0. Applications normally use jax4j-core with the desired engine; jax4j is the parent POM. This release is distributed through GitHub and is not published to Maven Central.

See native setup, README, and the release guide.

Maven Central

Version 0.1.0 is now available on Maven Central under com.nablatensor.
Use jax4j-core:0.1.0 plus the desired engine artifact. The jax4j artifact is the parent POM.

Central's main JARs match these GitHub release binaries byte for byte. Sources, Javadocs and signatures are also published. The existing tag is unchanged. Finance APIs are maintained in NablaTensor Quant.