Skip to main content

GPU computing framework using the Vulkan API

Project description

Hephaistos

Hephaistos is a framework for creating GPGPU appllication running on top of the Vulkan API, allowing it to run on all major OS and on a wide range of hardware such as all modern AMD, Intel and NVIDIA GPUs.

The library aims to reduce the amount of boiler plate code, albeit in doing so it might hide optimization possibility Vulkan provides.

Dependency

To ease the building process, all external dependency are stored inside the external directory. Check there for more information.

Mac OS

Mac OS does not support Vulkan on its own, but requires a translation layer called MoltenVK and can be installed for example via Homebrew:

brew install molten-vk

Since future updates to MoltenVK may enable more features without rebuilding hephaistos, it is not included in the library itself.

Install

There exist pre-built python packages on PyPI and may be easily installed via pip:

pip install hephaistos

For some rare platforms you might need to build from sources.

There are also no pre-built libraries for C++, as the API depends on the STL and thus has no stable ABI (i.e. you would need to create a build for each compiler).

Building

C++

For building the C++ library you require:

  • C++20 compatible compiler
  • CMake at least version 3.18

The dependencies are located in the external directory. In there is a readme file for more information.

The debug build requires the validation layers, which are part of the Vulkan SDK.

Hephaistos expects the kernel/shader code to be already compiled into SPIR-V bytecode, so you must likely also need an compiler for that. The most popular ones are:

See the readme inside the examples folder for a hint on how to use them.

Python

There are also python bindings using nanobind and scikit-build.

To build the python package you can simply run from the project's root directory:

pip install .

Note that the binding relies on the C++ library and thus has the same dependencies. The dependencies on the Python side are handled by pip.

Learning

There are some examples provided in the examples directory for C++ and in notebooks for Python.

License

Hephaistos is licensed under the MIT license. See LICENSE. External libraries are distributed under their own license. The ones located in external are always acompanied by a copy of their license.

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

hephaistos-0.9.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

hephaistos-0.9.0-cp312-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12+Windows x86-64

hephaistos-0.9.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

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

hephaistos-0.9.0-cp311-cp311-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11Windows x86-64

hephaistos-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

hephaistos-0.9.0-cp310-cp310-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.10Windows x86-64

hephaistos-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

hephaistos-0.9.0-cp39-cp39-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.9Windows x86-64

hephaistos-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file hephaistos-0.9.0.tar.gz.

File metadata

  • Download URL: hephaistos-0.9.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hephaistos-0.9.0.tar.gz
Algorithm Hash digest
SHA256 d0136953c870281a15aa69e76924a92af89654b95cb6c1b289a5f3f0e7053b23
MD5 a6b9e9387a2a70f0f6d30ceb6332a20b
BLAKE2b-256 8775d269f3bbabce8e98bed5e2c7b0813a454b47b3ab5c456d85caca314bfda4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0.tar.gz:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: hephaistos-0.9.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hephaistos-0.9.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5e28a009198714137588586c39628f3a1bdb1e259e39ae140d8588ed8bd2faff
MD5 ca49480dd2ebeb0ecbf26cf48ed09a6b
BLAKE2b-256 ed7e619d2d4acc15bee863e4c329eb41927eb7bcef57655b45c743bb236326ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp312-abi3-win_amd64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.9.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef10410297e4003eab81d4568a2a72813a412ac35ff7aeb5e0720c8b539f6e75
MD5 617e7269a379a96e34844c19264101af
BLAKE2b-256 a7a73d4eeb4e74e70dac630028104676151fa54867786e4c6d92faac1ecd326e

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: hephaistos-0.9.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hephaistos-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7e03263a19316b85eae6b3a81e3b32da0a9d2ecf58a7fa07204e6e37a984b0c6
MD5 35da57e2e20d0133545bad99fe089c98
BLAKE2b-256 c6ccd318e1566c87e7feec65dc17c507327d30988c7221b2c2f0cd1d97997266

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c18f6d48d53bdd42ebe5c8c3852df6bd221e505536de95a7390564d257c84834
MD5 4f7b76b6f93bb3fb8c862fe32482a9fe
BLAKE2b-256 8faa093b7bb1e568c98c5c0311e8f2b1e79200189ac798afaf91c663b9e669b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: hephaistos-0.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hephaistos-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 55f2fcd12f55c1aa2b7c6b3976ce2022616bded4153a8f51d9e6ea2ef87f01e7
MD5 e28f4b16bc5abccb18ba14a7b5b035d8
BLAKE2b-256 c77e29be266f6dc4b9b09718b97b46614f62f508b662a0639d36c03ae7ac13c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b44530fee94225b1638b9d053c1de20bf5e6ca3f7d305315b39a66a4be5cae09
MD5 b5e943f60c38e6217de62675be07f023
BLAKE2b-256 08b2ef1ce6b9a3a8d988b2a434fdd18b00a9827c722ae7e6c1ab5584fa800ce6

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: hephaistos-0.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hephaistos-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b04cb85d1bfce20d2c7fca86529b05022c4bbdfb3cc2b3a2e0b975a68d77bb84
MD5 449129c8afb1a05dc09051893d1500f1
BLAKE2b-256 514028be4e9cae807501156a213f70fe12c67a168c4b5c82da8fb6d8435b550d

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp39-cp39-win_amd64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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

File details

Details for the file hephaistos-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 310ee4de334ed557516089094cdb49c5fd326413b0542bc950ffb4f6ff9eea67
MD5 f8425bd47bf2a3fdaa0c8a59329d13ed
BLAKE2b-256 61dd72c5e3fedddd74bbd553ff137065f0c096dd6b6c3b7fd58550129f370cd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tkerscher/hephaistos

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 Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page