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.12.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.12.0-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

hephaistos-0.12.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.12.0-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

hephaistos-0.12.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.12.0-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

hephaistos-0.12.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.12.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

hephaistos-0.12.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.12.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

hephaistos-0.12.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.12.0.tar.gz.

File metadata

  • Download URL: hephaistos-0.12.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.12

File hashes

Hashes for hephaistos-0.12.0.tar.gz
Algorithm Hash digest
SHA256 2ab659db34d9102daf41f007fcd6c7b991da4a8234e11dc7aa8e2e446fdc35b8
MD5 9e7ccdbc139f39548e13d712eab42b64
BLAKE2b-256 96e4a027f3d4e25ea4b5c68dfc5a6417990425a116ca031c68f7ae0982a2b536

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3213a9b60786ec1422579608ef86aa4df4ba6c76354c18618aa7753c35b4b88a
MD5 f3b831c8c6e08ebefafb8f250ad3be2f
BLAKE2b-256 93ddd73ef6fa896738d501ef8459d300ea816e53e5841a9a682acd070a459d12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 077bf6b6e45affd1998f8cb04d34e5bfc5cf7cae753e6a9372ac360b29ae2081
MD5 2ccfec9ed81b16ee6150b9db5f360f47
BLAKE2b-256 c8649fdb239c793fe319f4aa54fbc70644df9f20d7bd7f12d43d5cafe36fc824

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.12.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.12.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 afc0bd665c050b56026f1d4da45a07a24570d2a911f14e1037091d9c9c769049
MD5 205ead303275035daa7c7dd5c7b1f6a0
BLAKE2b-256 fca79878d8a58f5f4c032bccab147483e624db941c860f4904b8f7fc56f3c94e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eba8d01e738bb8534e55d3c281d66e67e3e32c5fb12896813ecbf3fae4212732
MD5 f36d0bc0c781c9299d05e357cd2d946d
BLAKE2b-256 b5c8777bc401eb5db9d25be088f4f5bb331351f61714a1ef898b2e74d2b7da16

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.12.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.12.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5f8086b2fdc94ef48564ca583b77292e4474fedfeeec1112427f55e970a54710
MD5 f466dc204bfd50c82d2afdbc8745c787
BLAKE2b-256 d22d2bc42a8e571e01ee02bdcec9588ee3d081ce1d7af88d327cfc02ab1e90e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 43fc6295354be90a0042d329131478da194932cfbd6dfc79d8d62e8896b6e6c9
MD5 ac3d91b81fb8ec495e323d886dc34d1e
BLAKE2b-256 e7487156e5a137179a86ad59c1dae11d22d7bb2ffdbbc46e304a83b9558248f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.12.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.12.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2e1ddccee28cbbf430e67296e6a0021e782a4418180a24375a2c18732db5d3f2
MD5 9d86fb1b0de736b3239d32d9f98a82e6
BLAKE2b-256 79accde734db39fed13c780af4716d68371e75c906bd28852e2883abca23323b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f95bae803e79acfd3bb17d318d7a0604ae4122bfe10c06ab189507b984c21593
MD5 8a035c107cb0c484b2c19d44d15558f3
BLAKE2b-256 c728de0bbc87859c65057431baa9aad70b54a631f8b7155bb19e2160b5efa2d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.12.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.12.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d469ce0481b99b2d4759c29171dcbb78cd80d25673020c2cb22dcdf468b53e26
MD5 a97a6a3dcc1fbca2f2455ca8e4d42180
BLAKE2b-256 bc4b350efeb9aaf36da45633a664e1469068e41f671f0b1b2ec0e031312ad084

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for hephaistos-0.12.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f4078d9b3ebde20619bb51ba86e588b0ec9f175e6afb0ec0854eacaf71ddf8a
MD5 095a3b3cb16c23c23196f43464cbdf10
BLAKE2b-256 cc875a5cd9237c4a6f5eb92c4a8b0d993b408420f1a65e41b9a8259eb477e190

See more details on using hashes here.

Provenance

The following attestation bundles were made for hephaistos-0.12.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