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.11.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

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

hephaistos-0.11.0-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

hephaistos-0.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hephaistos-0.11.0-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

hephaistos-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hephaistos-0.11.0-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

hephaistos-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hephaistos-0.11.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

hephaistos-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hephaistos-0.11.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

hephaistos-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

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

File metadata

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

File hashes

Hashes for hephaistos-0.11.0.tar.gz
Algorithm Hash digest
SHA256 719c9398c9b237db29cff2cb20f491d099d7127304f4afb438270a0df144f696
MD5 faf38bbde260465266f9f0ee91e22409
BLAKE2b-256 3bfa54b0c695e49f22321a9671c532c939b5a8c0e484a900fd10996d2c2794d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.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.11.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 eca57d0c4ad8fff9db55d388e59f7b1ea1ecdd491ce0be49f89755ab0645270d
MD5 471d2e46a14c7f32bf14778c894f09a5
BLAKE2b-256 38b05aba3c54a10f9769370960c5b34971cef57bd76789a6dd20b1f40db4e461

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp314-cp314-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.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 567211535600af0f150e4cfa38ed02fa58b872b621bb8c1768b4833fdeb848b7
MD5 a63278943c1470cf6509b9ce91b79604
BLAKE2b-256 af8551d488e0573866f579781c56e55cc78ac75c497c4e93a4887ff726f86465

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_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.11.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4e350797ae871d87c0e61ebfcf7bbbf175d5df357b18948e2a5cb9021ba034c5
MD5 52d83c7aeab3ebcb511a4cbd9240b372
BLAKE2b-256 70f6980431f1360b466650fc98ae0480d6d773191ac947a10e72be2d0112233c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp313-cp313-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.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b58a097cb3b7cb8ee1128c91e7d202b8796b4798ce2c83a399ee8e177178661
MD5 1a60f14edb8c88a303e708291194b0ea
BLAKE2b-256 9afb0dcf85e85c8dd20054d835996107ced9b8cdfeb0a8c2648bcad0625d898c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_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.11.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e7bfd6f19f0e3a50a6ad88f7a6c918bc654a38c2b8c144e3352aa29917889096
MD5 2c8d6d378501ef866186bcb12534f919
BLAKE2b-256 fc27a94b644eff99579f0616e4369bbd028ddd70943a21918d60cd47be07b13f

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp312-cp312-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.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e455af757d8ce354347a99710a2ca1c1fb707419f9b569b319f3b519d489a2f
MD5 15a40d49a6512fb155c06da0b32846ef
BLAKE2b-256 d8e8cb33ce2d1af84e0d26168fa8718c6c2235324dff1758f757f4a31537a1e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_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.11.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 340320143ff92f1034a31d9db4e82a6b17c455a71679eeb04a3d8c9200bf3a7b
MD5 ed5d83d46967a4aac1daf5168e19d8c3
BLAKE2b-256 38dc3821d1292e6c9bca2a4543d26c93defe5f7ab9e179fe0eae937db0385a42

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.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.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3a335fce1b90c78ff8d90621f8c97d0ee1c2b696c7f6600b85c30ccd3db0263c
MD5 7a8e24c1738896279a083c92fcde15c9
BLAKE2b-256 4272705419928dec5957bc725256a0412286507b17aa5dbe2d65d7f76d5a22a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_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.11.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1ef0c4cd7b2a11f57c7da649ecec3745a556f4888c9bf1704b14e660d85b70cf
MD5 6d75c8e02089101b511481408ed60bd2
BLAKE2b-256 43a49f5cdc1fbc39d341f7341c0e9f1d1110b159adca49998f8089c458d95be4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.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.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 969d311b23a703b9bfa43d0437bf705dcdeb3e83cca40ba28561b87dcc8372d2
MD5 ddd6489dbae50239c13417f968203761
BLAKE2b-256 34e945d1d01b9fd1a24cb77bb4d50f62184153ff74325f7ba654ca56adc94753

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_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 Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page