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
95 lines
2.5 KiB
ReStructuredText
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,
|
|
};
|