Install the hipFile Python bindings#
This page covers building and installing the Cython-based Python bindings for the hipFile C library. Before following these steps, you must have the hipFile C library already built or installed. See Build and install hipFile from source for instructions on building the C library.
Prerequisites#
The Python bindings require the following software:
Python >= 3.10 with the
venvmoduleCython (installed into your virtual environment)
scikit-build-core (used as the build backend)
python-build (the
buildfront-end, orpipfor editable installs)CMake (version 3.21 or later)
A C compiler (for building the Cython-generated C extension)
hipFile C library (
libhipfile.so): built or installed before the Python bindingshipFile C development header (
hipfile.h)HIP development headers (
hip/hip_runtime_api.h)
Note
The Python bindings currently support only the AMD platform.
Set up a virtual environment#
Create and activate a Python virtual environment before installing dependencies or building the bindings:
python3 -m venv .venv
source .venv/bin/activate
Install the required Python build tools inside the virtual environment:
pip install cython scikit-build-core build
Build the hipFile C library#
The Python bindings link against libhipfile.so and include hipfile.h. You
must build or install the C library before building the Python package.
If you are building from source, follow the steps in
Build and install hipFile from source. Note the paths to the build output directory
and the include/ directory: you may need them for the override variables
described below.
Build the Python wheel#
Navigate to the python/ directory inside the hipFile source tree and build
the wheel:
cd projects/hipfile/python
python -m build --wheel
The build system uses CMake (via scikit-build-core) to locate the hipFile headers, the hipFile shared library, and the HIP runtime headers. By default, it searches:
The sibling
../includedirectory (relative to thepython/directory) is searched forhipfile.h, with/opt/rocm/includeas a fallback locationThe sibling
../build/src/amd_detaildirectory is searched forlibhipfile.so, with/opt/rocm/libas a fallback location
If these default paths do not match your environment, use the override variables described in CMake override variables.
Install an editable package#
For development, you can install the Python package in editable mode. An editable install lets you modify the Python source code and see changes immediately without rebuilding or reinstalling the package. Changes to the Cython source code still require a rebuild.
cd projects/hipfile/python
pip install -e .
CMake override variables#
If the hipFile library, hipFile headers, or HIP headers are installed in
non-default locations, pass override variables to CMake through the build
front-end. Use the -Ccmake.define.<KEY>=<VALUE> syntax with
python -m build, or set them as environment-specific CMake variables with
pip.
Variable |
Description |
|---|---|
|
Path to the directory containing |
|
Path to |
|
Path to the directory containing |
For example, to specify a custom hipFile install location when building the wheel:
python -m build --wheel \
-Ccmake.define.HIPFILE_INCLUDE_DIR=/path/to/hipfile/include \
-Ccmake.define.HIPFILE_LIBRARY=/path/to/lib \
-Ccmake.define.HIP_INCLUDE_DIR=/opt/rocm/include
Or with pip install:
pip install -e . \
-Ccmake.define.HIPFILE_INCLUDE_DIR=/path/to/hipfile/include \
-Ccmake.define.HIPFILE_LIBRARY=/path/to/lib
Warning
If CMake cannot locate hipfile.h, libhipfile.so, or
hip/hip_runtime_api.h, the build fails with a FATAL_ERROR message
indicating which path to set.
Confirm the installation#
After building and installing the wheel, or using an editable install, confirm that the bindings are importable:
python -c "import hipfile; print('hipFile Python bindings loaded successfully')"