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

Uploaded Source

Built Distributions

hephaistos-0.7.0-cp312-abi3-win_amd64.whl (963.3 kB view details)

Uploaded CPython 3.12+ Windows x86-64

hephaistos-0.7.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

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

hephaistos-0.7.0-cp312-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

hephaistos-0.7.0-cp312-abi3-macosx_10_15_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12+ macOS 10.15+ x86-64

hephaistos-0.7.0-cp311-cp311-win_amd64.whl (960.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

hephaistos-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

hephaistos-0.7.0-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

hephaistos-0.7.0-cp311-cp311-macosx_10_15_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

hephaistos-0.7.0-cp310-cp310-win_amd64.whl (960.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

hephaistos-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

hephaistos-0.7.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

hephaistos-0.7.0-cp310-cp310-macosx_10_15_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

hephaistos-0.7.0-cp39-cp39-win_amd64.whl (960.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

hephaistos-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

hephaistos-0.7.0-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

hephaistos-0.7.0-cp39-cp39-macosx_10_15_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: hephaistos-0.7.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for hephaistos-0.7.0.tar.gz
Algorithm Hash digest
SHA256 69f4cec0965649fa346d244e531d77f01eb4bebf5dba033c9a65a3b9a50f4ff7
MD5 daf7fbd6cbad92dd6c1a08f8f3a363d7
BLAKE2b-256 ad588fd427825469e2313515e828ea20c3eeecbbe6b7a7a86715918a76c83280

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 80e2d4a6e95ff7576b26c5b902f4c061cf9a80b33b4d3b091ce0993723292d5c
MD5 25dcf6e676c1cfa3d45d5bd27907f498
BLAKE2b-256 c65ee9f2a507f788125abf51d91326ce91d8bbed7448c1e467d8fbabb4fce4a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7268df5f78fe79a16e72206016e9d7663fc5aa46c882a35c0601ab60df052e0
MD5 818c6604e28670c4538cdde71c010bf1
BLAKE2b-256 01102b24daa23822dc60946f19c43aaac02a281fd25316bd0270cb583092fca6

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc26e507b9985b335bd259a7725f201647c378b8ec34a544ceecccff16500219
MD5 6e35e541bcf4fa0351db43e3a255dcac
BLAKE2b-256 4dcd8209a212f91d6ef050ced0418aa7076ac3e6b627e2009716dce8a6160377

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp312-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp312-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b32c7af451f6498b4c05ee96a0c1877ef0a2d18402248d096c207e24d5f9baa9
MD5 6b05877428e56138debb766bd64613fd
BLAKE2b-256 eb61336e8ab8d5e6c640b54258a4aeffeb1a1e0448ee968d74b128aec30ce341

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5762ce5225e89d3aa12015b5e8630480b08d14ffa4b970ae032862a170d84cd1
MD5 79006d3a978b2b5f80428e3a10df9ba9
BLAKE2b-256 17d6d211c5016cfba9fcbf6bd2d23afdd4878538c242c76d555955f0be1d612b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21e760752bb2ab74601684c1b4ee15a0452cd013c94155ebc2aaffaa0968688f
MD5 0cd7dff0d59e5b800e1319590a1c5024
BLAKE2b-256 43fb97e81761952bd3f0cb8194b10fd19aaaaf6688f6112da0ab3b852a508f2d

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a0eae29c01ad740077166984e40a342b93f87ea1ec4f2ba1078b53ba273c660
MD5 2c2fad8965684b10b34e8c015359e3fc
BLAKE2b-256 cda55081f406d8c66fdda731ea8651e1d51c23077dda34b914f10e9e6375c82d

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 411e54de1f4b79cb92eb53eda077754934dc49d3149b37f8647888a68a0c2d83
MD5 26279a9ea4416e50d83fca9aa93f8f3f
BLAKE2b-256 ad7662d45d56e95cb0d8e85f360e2644fcbb272c9e65fcd918bf514a4859a1e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9679bb94d2b51a80f2f48445d4ccdee51f727a2e5fb6e13b8e69e411e8a07d78
MD5 6301a2f305334c50a4a5944eefe1b7f0
BLAKE2b-256 a21396a1d70cbbee26ba0c6dcc6612e508901a486b1c3b5957f291696aeaae06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e605330852343a5cc187922dceb63ef3652a792558be8354da1cb321daed086b
MD5 0bf2e2686f73f0a67868167bd9dca9ed
BLAKE2b-256 a68811ba58adf532b3ff275c3f2b1952ebb696b47978dae17a6cf4c811a2e252

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8931011e5568092b8d1b65e348e4efb18f7db2b548abb5ee263c1d6c4b031375
MD5 2459581955987304d13f246824c4f71e
BLAKE2b-256 02eaaa416289f2f3e049a2f46d6e3f29ade44746ca8ba41d41239731c4dbe0f6

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ec1ec18424b0965ff01b767d5a7bf98bf93d993f59339bd19995b7695f94f010
MD5 dddb6349c3b3c9834babb2f334d829f0
BLAKE2b-256 2900344392183e3bd56fd3222825cb47c638317be954313f727d78dd9d6dd595

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hephaistos-0.7.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 960.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for hephaistos-0.7.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d0e19cb87e9e382c70d21fff38519e8171b2b639873a6ae067b87bde1bc94bc4
MD5 228656484b16d8f89703879490223602
BLAKE2b-256 84fdaed940484e5c6a76e999372f211bc866f7d140a416c32c491f49486379b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6995ce76d783dd231bbeed79862059217a2aa24774664709be1496e2a802212
MD5 5c419331e4ab241d458126060ed6d3a5
BLAKE2b-256 4a564c5a5633cef877a1d77f047ffcde891d340ab9f40d350cb1fecbc7917c1e

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3302b7da6505aae0da89d2c9bbe0da4666fda0a96e950e9918a338698a569b8f
MD5 b06ae8c871c50adb7555e9ef9620ffd8
BLAKE2b-256 48833e2295bc59dcaf234c99bfef1c3c6bba76da751b097c0ca884342e35569d

See more details on using hashes here.

File details

Details for the file hephaistos-0.7.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for hephaistos-0.7.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3e86160553564867a5a568398a321295acd363b47b2805e678bd93bc3317a5ab
MD5 1d2ca04f418bcfdc35c04f3c6cb2ca63
BLAKE2b-256 7e07875db1318cbba445cedf929df8eb6a59f829ca61f79b0fd0ba1fee667312

See more details on using hashes here.

Supported by

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