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
Built Distributions
Hashes for hephaistos-0.7.0-cp312-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80e2d4a6e95ff7576b26c5b902f4c061cf9a80b33b4d3b091ce0993723292d5c |
|
MD5 | 25dcf6e676c1cfa3d45d5bd27907f498 |
|
BLAKE2b-256 | c65ee9f2a507f788125abf51d91326ce91d8bbed7448c1e467d8fbabb4fce4a6 |
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 |
Hashes for hephaistos-0.7.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc26e507b9985b335bd259a7725f201647c378b8ec34a544ceecccff16500219 |
|
MD5 | 6e35e541bcf4fa0351db43e3a255dcac |
|
BLAKE2b-256 | 4dcd8209a212f91d6ef050ced0418aa7076ac3e6b627e2009716dce8a6160377 |
Hashes for hephaistos-0.7.0-cp312-abi3-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b32c7af451f6498b4c05ee96a0c1877ef0a2d18402248d096c207e24d5f9baa9 |
|
MD5 | 6b05877428e56138debb766bd64613fd |
|
BLAKE2b-256 | eb61336e8ab8d5e6c640b54258a4aeffeb1a1e0448ee968d74b128aec30ce341 |
Hashes for hephaistos-0.7.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5762ce5225e89d3aa12015b5e8630480b08d14ffa4b970ae032862a170d84cd1 |
|
MD5 | 79006d3a978b2b5f80428e3a10df9ba9 |
|
BLAKE2b-256 | 17d6d211c5016cfba9fcbf6bd2d23afdd4878538c242c76d555955f0be1d612b |
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 |
Hashes for hephaistos-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a0eae29c01ad740077166984e40a342b93f87ea1ec4f2ba1078b53ba273c660 |
|
MD5 | 2c2fad8965684b10b34e8c015359e3fc |
|
BLAKE2b-256 | cda55081f406d8c66fdda731ea8651e1d51c23077dda34b914f10e9e6375c82d |
Hashes for hephaistos-0.7.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411e54de1f4b79cb92eb53eda077754934dc49d3149b37f8647888a68a0c2d83 |
|
MD5 | 26279a9ea4416e50d83fca9aa93f8f3f |
|
BLAKE2b-256 | ad7662d45d56e95cb0d8e85f360e2644fcbb272c9e65fcd918bf514a4859a1e5 |
Hashes for hephaistos-0.7.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9679bb94d2b51a80f2f48445d4ccdee51f727a2e5fb6e13b8e69e411e8a07d78 |
|
MD5 | 6301a2f305334c50a4a5944eefe1b7f0 |
|
BLAKE2b-256 | a21396a1d70cbbee26ba0c6dcc6612e508901a486b1c3b5957f291696aeaae06 |
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 |
Hashes for hephaistos-0.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8931011e5568092b8d1b65e348e4efb18f7db2b548abb5ee263c1d6c4b031375 |
|
MD5 | 2459581955987304d13f246824c4f71e |
|
BLAKE2b-256 | 02eaaa416289f2f3e049a2f46d6e3f29ade44746ca8ba41d41239731c4dbe0f6 |
Hashes for hephaistos-0.7.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec1ec18424b0965ff01b767d5a7bf98bf93d993f59339bd19995b7695f94f010 |
|
MD5 | dddb6349c3b3c9834babb2f334d829f0 |
|
BLAKE2b-256 | 2900344392183e3bd56fd3222825cb47c638317be954313f727d78dd9d6dd595 |
Hashes for hephaistos-0.7.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0e19cb87e9e382c70d21fff38519e8171b2b639873a6ae067b87bde1bc94bc4 |
|
MD5 | 228656484b16d8f89703879490223602 |
|
BLAKE2b-256 | 84fdaed940484e5c6a76e999372f211bc866f7d140a416c32c491f49486379b3 |
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 |
Hashes for hephaistos-0.7.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3302b7da6505aae0da89d2c9bbe0da4666fda0a96e950e9918a338698a569b8f |
|
MD5 | b06ae8c871c50adb7555e9ef9620ffd8 |
|
BLAKE2b-256 | 48833e2295bc59dcaf234c99bfef1c3c6bba76da751b097c0ca884342e35569d |
Hashes for hephaistos-0.7.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e86160553564867a5a568398a321295acd363b47b2805e678bd93bc3317a5ab |
|
MD5 | 1d2ca04f418bcfdc35c04f3c6cb2ca63 |
|
BLAKE2b-256 | 7e07875db1318cbba445cedf929df8eb6a59f829ca61f79b0fd0ba1fee667312 |