Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

95 lines
2.5 KiB
ReStructuredText

.. meta::
:description: Learn about the methods and classes for knobs in hipDNN.
:keywords: hipDNN, ROCm, knobs, API
.. _knob-api:
**************************
hipDNN knobs API reference
**************************
Use this article as a reference for the classes and methods for knobs in hipDNN.
``Knob`` class
==============
Describes metadata for an available knob.
**Key methods**:
- ``const std::string& knobId()``: Get the knob identifier.
- ``const std::string& description()``: Get a human-readable description.
- ``bool isDeprecated()``: Check if a knob is deprecated.
- ``KnobValueType valueType()``: Get value type (``INT64``, ``FLOAT64``, or ``STRING``).
- ``const KnobValueVariant& defaultValue()``: Get the default value as a variant.
- ``const IConstraint* constraint()``: Get the constraint validator.
- ``Error validate(const KnobSetting& setting)``: Validate a setting.
``KnobSetting`` class
=====================
Represents a knob value setting to apply.
**Constructors**:
.. code:: cpp
KnobSetting(std::string knobId, KnobValueVariant value);
template <typename T> KnobSetting(std::string knobId, const T& value);
**Key methods**:
- ``const std::string& knobId()``: Get the knob identifier.
- ``const KnobValueVariant& value()``: Get the knob value.
- ``template <typename T> void setValue(const T& value)``: Update the knob value.
Graph methods
=============
**Querying knobs**:
.. code:: cpp
Error get_knobs_for_engine(int64_t engineId, std::vector<Knob>& knobs) const;
Error get_knob_lookup_for_engine(int64_t engineId, std::unordered_map<std::string, Knob>& knobs) const;
**Setting knobs**:
.. code:: cpp
Error create_execution_plan_ext(int64_t engineId, const std::vector<KnobSetting>& settings);
Constraint classes
==================
**Base interface**:
.. code:: cpp
class IConstraint {
virtual Error validateKnobSetting(const KnobSetting& setting) const = 0;
virtual std::string toString() const = 0;
};
**Implementations**:
- ``IntConstraint(int64_t minValue, int64_t maxValue, int64_t step, std::unordered_set<int64_t> validValues)``
- ``FloatConstraint(double minValue, double maxValue)``
- ``StringConstraint(int32_t maxLength, std::unordered_set<std::string> validValues)``
- ``EmptyConstraint()``: No constraints
Type definitions
================
.. code:: cpp
using KnobValueVariant = std::variant<int64_t, double, std::string>;
typedef std::string KnobType_t;
enum class KnobValueType {
NOT_SET = 0,
INT64 = 1,
FLOAT64 = 2,
STRING = 3,
};