AiMolSim
VYROX Chemistry Engine 0.7.12

An Engine We Wrote, So We Can Explain It

C++17 and CUDA with no third-party numerical libraries. Every method cites its source and every data table carries a checksum.

An HPC engineer inspecting an open enterprise GPU server pulled out of a data-centre rack
444 passed

Self-test of 0.7.11 on the GPU server: 58 pending a source check, 0 failed

31 of 31

Regression cases unchanged at 1e-8 tolerance

0 crashes

Across 2000 mutated hostile inputs, 1633 cleanly refused

4 modules

Quantum chemistry, cheminformatics, Model Systems and molecular mechanics

Built to Be Checked

No Libraries

Own linear algebra, GEMM, eigensolvers, FFT, JSON, SHA-256 (FIPS 180-4), random numbers and CUDA kernels.

Checksummed Data

Every data table has a SHA-256 manifest, a source key and a verification status. Results embed which tables they used.

Cited Methods

Each method cites its original paper or textbook, never a software package.

Cache Keys

A SHA-256 key identifies a computation exactly, so an identical request returns the stored result.

Hostile Input Safe

Bounds checks refuse coordinates beyond 1000 Å, atoms closer than 0.1 Å, inconsistent electron counts and files over 64 MB.

Cross-Platform

Same energies on Windows with MSVC and macOS with clang. Linux is untested.

The GPU, Stated Plainly

Our CUDA kernels are correct and the path is switched off by default for quantum chemistry. That is a result, and we publish it.

  • CUDA and CPU energies agree to 2.0e-12 Eh on 54 test cases, and match PySCF and Psi4 to 2.4e-11 Eh
  • Since 0.6.4 the GPU keeps the integrals resident: caffeine went from 2573 s to 95.6 s on the GPU, but the CPU still takes 58.5 s, so automatic selection picks the CPU
  • Nonbonded molecular mechanics on the GPU: 6000 atoms in 98 ms
  • Launches are chunked to about 100 ms to stay under the Windows driver timeout
  • Hardware today: one 8 GB RTX 3050 with FP64 throughput at 1/64 of FP32, no multi-GPU, no MPI
Molecule (Basis Functions)CUDACPU
Caffeine (80)2572.7 s145.9 s
Anthracene1201.2 s95.4 s
Glucose763.9 s96.4 s
Engine 0.6.0, science issue SI-48. Engine 0.6.4 cut caffeine to 95.6 s on the GPU against 58.5 s on the CPU; auto mode stays on the CPU.

A Protocol You Can Script

  • Command line: run, selftest, regress, recheck and cache-key; checkpoint and restart for long runs, with diagnostics kept when a run does not converge
  • The engine reads input.json and writes JSON lines plus result.json, in protocol version 1
  • Exit codes: 0 ok, 2 input error, 3 not converged, 4 resource limit, 5 internal error
  • Results include energies in several units, provenance, cache key, warnings and a limitations text
  • Install, update and roll back from the server console, with a selftest and a Last Good version
An engineer in a clean server room with racks of GPU servers holding a tablet that shows a dashboard of server tiles

Engine Questions

Is it really written from scratch?
The engine is our own C++17 and CUDA code. It uses the C++ standard library and the CUDA runtime, and no third-party numerical libraries: linear algebra, eigensolvers, FFT, JSON, SHA-256 and the GPU kernels are our own. PySCF, Psi4, RDKit and Open Babel appear only in a separate test environment as referees.
Can I run it on my own machine?
Yes. The source archive builds from a fresh extract on macOS with make or build.sh, and on Windows with build.bat (nvcc and MSVC, or cl for CPU only). Linux builds are not yet tested.
How does the portal talk to the engine?
Through a simple protocol: the engine reads an input.json and writes JSON lines and a result.json. Exit codes are 0 for success, 2 input error, 3 not converged, 4 resource limit and 5 internal error.
How is the GPU used?
Our CUDA kernels cover s and p integral classes and the nonbonded loops, and the wavepacket FFT. For quantum chemistry the GPU path is currently slower than the CPU, so the engine selects the CPU automatically.

Run Your Next Molecule Through AiMolSim

See your own molecule optimised, its frequencies computed and the checks printed beside the result. A demo takes about 30 minutes.