helion.Config

class helion.Config(*, block_sizes=None, loop_orders=None, flatten_loops=None, l2_groupings=None, reduction_loops=None, range_unroll_factors=None, range_warp_specializes=None, range_num_stages=None, range_multi_buffers=None, range_flattens=None, static_ranges=None, num_warps=None, num_stages=None, pid_type=None, indexing=None, **kwargs)[source]
Parameters:
__init__(*, block_sizes=None, loop_orders=None, flatten_loops=None, l2_groupings=None, reduction_loops=None, range_unroll_factors=None, range_warp_specializes=None, range_num_stages=None, range_multi_buffers=None, range_flattens=None, static_ranges=None, num_warps=None, num_stages=None, pid_type=None, indexing=None, **kwargs)[source]

Initialize a Config object.

Parameters:
  • block_sizes (list[int] | None) – Controls tile sizes for hl.tile invocations.

  • loop_orders (list[list[int]] | None) – Permutes iteration order of tiles.

  • l2_groupings (list[int] | None) – Reorders program IDs for L2 cache locality.

  • reduction_loops (list[int | None] | None) – Configures reduction loop behavior.

  • range_unroll_factors (list[int] | None) – Loop unroll factors for tl.range calls.

  • range_warp_specializes (list[bool | None] | None) – Warp specialization for tl.range calls.

  • range_num_stages (list[int] | None) – Number of stages for tl.range calls.

  • range_multi_buffers (list[bool | None] | None) – Controls disallow_acc_multi_buffer for tl.range calls.

  • range_flattens (list[bool | None] | None) – Controls flatten parameter for tl.range calls.

  • static_ranges (list[bool] | None) – Whether to use tl.static_range instead tl.range.

  • num_warps (int | None) – Number of warps per block.

  • num_stages (int | None) – Number of stages for software pipelining.

  • pid_type (Optional[Literal['flat', 'xyz', 'persistent_blocked', 'persistent_interleaved']]) – Program ID type strategy (“flat”, “xyz”, “persistent_blocked”, “persistent_interleaved”).

  • indexing (Optional[Literal['pointer', 'tensor_descriptor', 'block_ptr']]) – Indexing strategy (“pointer”, “tensor_descriptor”, “block_ptr”).

  • **kwargs (object) – Additional user-defined configuration parameters.

  • flatten_loops (list[bool] | None)

Methods

__init__(*[, block_sizes, loop_orders, ...])

Initialize a Config object.

from_json(json_str)

Create a Config object from a JSON string.

get(k[,d])

items()

keys()

load(path)

Load a config from a JSON file.

save(path)

Save the config to a JSON file.

to_json()

Convert the config to a JSON string.

values()

Attributes

block_sizes

flatten_loops

indexing

l2_groupings

loop_orders

num_stages

num_warps

pid_type

range_flattens

range_multi_buffers

range_num_stages

range_unroll_factors

range_warp_specializes

reduction_loops

static_ranges

config

__init__(*, block_sizes=None, loop_orders=None, flatten_loops=None, l2_groupings=None, reduction_loops=None, range_unroll_factors=None, range_warp_specializes=None, range_num_stages=None, range_multi_buffers=None, range_flattens=None, static_ranges=None, num_warps=None, num_stages=None, pid_type=None, indexing=None, **kwargs)[source]

Initialize a Config object.

Parameters:
  • block_sizes (list[int] | None) – Controls tile sizes for hl.tile invocations.

  • loop_orders (list[list[int]] | None) – Permutes iteration order of tiles.

  • l2_groupings (list[int] | None) – Reorders program IDs for L2 cache locality.

  • reduction_loops (list[int | None] | None) – Configures reduction loop behavior.

  • range_unroll_factors (list[int] | None) – Loop unroll factors for tl.range calls.

  • range_warp_specializes (list[bool | None] | None) – Warp specialization for tl.range calls.

  • range_num_stages (list[int] | None) – Number of stages for tl.range calls.

  • range_multi_buffers (list[bool | None] | None) – Controls disallow_acc_multi_buffer for tl.range calls.

  • range_flattens (list[bool | None] | None) – Controls flatten parameter for tl.range calls.

  • static_ranges (list[bool] | None) – Whether to use tl.static_range instead tl.range.

  • num_warps (int | None) – Number of warps per block.

  • num_stages (int | None) – Number of stages for software pipelining.

  • pid_type (Optional[Literal['flat', 'xyz', 'persistent_blocked', 'persistent_interleaved']]) – Program ID type strategy (“flat”, “xyz”, “persistent_blocked”, “persistent_interleaved”).

  • indexing (Optional[Literal['pointer', 'tensor_descriptor', 'block_ptr']]) – Indexing strategy (“pointer”, “tensor_descriptor”, “block_ptr”).

  • **kwargs (object) – Additional user-defined configuration parameters.

  • flatten_loops (list[bool] | None)

config: dict[str, object]
to_json()[source]

Convert the config to a JSON string.

Return type:

str

classmethod from_json(json_str)[source]

Create a Config object from a JSON string.

Parameters:

json_str (str)

Return type:

Config

save(path)[source]

Save the config to a JSON file.

Parameters:

path (str | Path)

Return type:

None

classmethod load(path)[source]

Load a config from a JSON file.

Parameters:

path (str | Path)

Return type:

Config

property block_sizes: list[int]
property loop_orders: list[list[int]]
property flatten_loops: list[bool]
property reduction_loops: list[int | None]
property num_warps: int
property num_stages: int
property l2_groupings: list[int]
property pid_type: Literal['flat', 'xyz', 'persistent_blocked', 'persistent_interleaved']
property range_unroll_factors: list[int]
property range_warp_specializes: list[bool | None]
property range_num_stages: list[int]
property range_multi_buffers: list[bool | None]
property range_flattens: list[bool | None]
property static_ranges: list[bool]
property indexing: Literal['pointer', 'tensor_descriptor', 'block_ptr']