Skip to main content

Actor-shaped face for compute-acceleration backends (NVIDIA CUDA shipping; ROCm / Metal / oneAPI / Vulkan future), on the atomr actor runtime.

Project description

atomr-accel (Python)

Python bindings for atomr-accel — drive an actor-supervised NVIDIA CUDA pipeline directly from Python without juggling streams, contexts, or hand-rolled retry loops.

import numpy as np
import atomr_accel

with atomr_accel.System.open("my-app") as sys:
    dev = sys.spawn_device(device_id=0)         # real CUDA device

    # Allocate two N×N f32 buffers on-device.
    n = 256
    a = dev.allocate_f32(n * n)
    b = dev.allocate_f32(n * n)
    c = dev.allocate_f32(n * n)

    # Upload from numpy.
    dev.copy_from_numpy(a, np.ones(n * n, dtype=np.float32))
    dev.copy_from_numpy(b, np.full(n * n, 2.0, dtype=np.float32))

    # Run cuBLAS SGEMM — the call blocks until the kernel finishes.
    dev.sgemm(a, b, c, m=n, n=n, k=n, alpha=1.0, beta=0.0)

    # Pull the result back into a fresh numpy array.
    result = dev.copy_to_numpy(c)
    print(result.reshape(n, n))

For hosts without a GPU, pass mock=True to spawn_device and the device replies Unrecoverable("...mock mode") for any kernel call — useful for testing the surrounding plumbing in CI.

Install

The wheel builds with maturin:

# from this directory
pip install maturin pytest numpy
maturin develop --release       # builds + installs into the active venv
pytest tests/                    # runs the no-GPU smoke suite

For a release wheel:

maturin build --release --no-default-features --features extension-module
# wheel lands in target/wheels/

The pure-Python facade (python/atomr_accel/__init__.py) re-exports the native classes and exception types. Downstream libraries import from atomr_accel and treat atomr_accel._native as private.

Feature flags

The Rust crate matches atomr-accel's feature gating so the wheel can be built minimal or full:

Feature Adds
(default) System, Device, GpuBuffer, exceptions
curand RngGenerator
nvrtc NvrtcKernel
cudnn / cufft / cusolver / cublaslt / nccl placeholder; future Python surfaces
core-libs / training-libs / full-cuda aggregates
maturin develop --features atomr-accel-py/curand,atomr-accel-py/nvrtc

Public API

Class / function What it wraps
atomr_accel.System.open(name) A atomr_core::actor::ActorSystem lifetime
system.spawn_device(id, mock=) A DeviceActor (real or mock)
device.allocate_f32(len) DeviceMsg::AllocateF32GpuBuffer
device.copy_from_numpy(buf, np) H2D CopyFromHostF32
device.copy_to_numpy(buf) D2H CopyToHostF32 → numpy float32 array
device.sgemm(a,b,c,m,n,k,...) cuBLAS SGEMM via BlasActor
device.stats() DeviceMsg::StatsDeviceLoad
GpuBuffer.is_stale() Generation token check vs. DeviceState
GpuRuntimeError (and subclasses) Typed GpuError mapping

Every method blocks the calling thread until the underlying actor replies (the GIL is released for the duration via py.allow_threads). Async wrappers can be layered later via pyo3_async_runtimes::tokio::future_into_py.

How it works

Three pieces:

  1. A shared tokio runtime. The first call to System.open(...) initializes a multi-threaded scheduler; every subsequent call reuses it. Implemented in src/runtime.rs via pyo3-async-runtimes::tokio::init.
  2. The _native extension module. src/lib.rs registers System, Device, GpuBuffer, exceptions, and (feature-gated) RngGenerator / NvrtcKernel. Each Python class wraps a typed ActorRef<...> from atomr-accel and converts replies via errors::map_gpu.
  3. The pure-Python facade at python/atomr_accel/__init__.py. Hides _native; documents the API; gives downstream libraries a stable import path.

See docs/python-bridge.md for the full architecture write-up.

License

Apache-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atomr_accel-0.3.3.tar.gz (785.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

atomr_accel-0.3.3-cp310-abi3-win_amd64.whl (632.0 kB view details)

Uploaded CPython 3.10+Windows x86-64

atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_x86_64.whl (899.2 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_aarch64.whl (836.2 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (683.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (657.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

atomr_accel-0.3.3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file atomr_accel-0.3.3.tar.gz.

File metadata

  • Download URL: atomr_accel-0.3.3.tar.gz
  • Upload date:
  • Size: 785.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atomr_accel-0.3.3.tar.gz
Algorithm Hash digest
SHA256 61a70232d11eef76900a18b3243129d9d798db2b560c3754091201040ee6a4f8
MD5 060f0f2c9e79a8f11bbcc6ad4692b5fd
BLAKE2b-256 cba18ab60a3ecaf6b6b4659774236e4fc0cdc24048b21353596efffe8c667b33

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3.tar.gz:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atomr_accel-0.3.3-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: atomr_accel-0.3.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 632.0 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atomr_accel-0.3.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 42cc6a573f00c60382a8b35beee05315b824ec9fa322608aa28ac4078a143aef
MD5 3c02cee91d6b8e8316e948536bd2a011
BLAKE2b-256 3b58a44c43a630df047c6d1d31e7f56c8d0359388434fbd509ad38480ee10b5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3-cp310-abi3-win_amd64.whl:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 25b63c0dbcc4539a8350288cf429fb90053b2764b0779c4712fe4aa173d18443
MD5 bef7bdf59c76a4b6daef61d026a3f307
BLAKE2b-256 9a74fa3fb6a1bb8379eed509c8882c535b68c06040220ba281175565f0b02f53

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 95210526c76e6e5cd5e9e77458cde50994ab37556e5fcd09756f70931cee77f7
MD5 a95fe66abefecffd742a1e1ac0eaf3e9
BLAKE2b-256 2b5a403de36d9d5770e45b657d0ca1f260ffef59a39747b8390bbff5b29c0802

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1f4185fc28ef967f1b57c728da97a880e1bfb17b786dec79ab6401f234b0d3b4
MD5 293b556e6607889a46c00e0014e84b8b
BLAKE2b-256 0cc8b8a14a3e595653b101db53749097199bc82c0f4579ceb734839365aa6813

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 825fb597f5b06ed6daa76ea76af24fdc2d244741231333c1762201f2857a9d34
MD5 0f3d074f55d7e380877d6eaa57af60cf
BLAKE2b-256 9ee7e48b3d11655bfc498a33aaaa7bc85a2f1bc4804ca1720c082c695e9ec470

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atomr_accel-0.3.3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for atomr_accel-0.3.3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 445a2e0dd4a05c62f2e95d36a844a84f7634893f619fa24a365f618f65c324a9
MD5 d382b77c1d47aaa54794604a0679f503
BLAKE2b-256 102e1ef643f8c2eee7605e5336eb3d5113edc5b4967fa04c03b008c3997390cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for atomr_accel-0.3.3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on rustakka/atomr-accel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page