Configuration space is the complete set of all possible combinations of tunable parameters that define the search domain for an auto-tuning process. In NPU kernel optimization, these parameters include workgroup size, memory tile dimensions, loop unroll factors, and vectorization width. The auto-tuner's objective is to efficiently explore this multi-dimensional space to find the parameter set that yields peak performance—measured by metrics like compute throughput or latency—for a specific kernel on target hardware.
Glossary
Configuration Space

What is Configuration Space?
In the context of NPU acceleration, a configuration space is the foundational mathematical domain for auto-tuning, defining all possible combinations of tunable kernel parameters.
The structure of the configuration space is critical for search efficiency. A poorly defined space, with invalid or non-impactful parameters, leads to wasted profiling cycles. Performance engineers constrain the space using hardware limits (e.g., maximum threads per block) and performance models to prune irrelevant regions. Advanced search strategies like Bayesian optimization navigate this space by building a probabilistic model of performance, intelligently balancing exploration of new configurations and exploitation of known high-performing areas to converge on an optimal solution.
Key Characteristics of a Configuration Space
A configuration space defines the universe of possible parameter combinations an auto-tuner can explore. Understanding its structure is essential for efficient performance optimization on NPUs.
Dimensionality
The dimensionality of a configuration space is defined by the number of independent, tunable parameters. Each parameter adds a new axis to the search space. For example, a kernel's configuration space might be defined by:
- Workgroup Size (X, Y dimensions)
- Tile Size for local memory
- Loop Unroll Factor
- Vectorization Width High dimensionality leads to an exponential increase in possible combinations, making exhaustive search infeasible and necessitating intelligent search algorithms like Bayesian Optimization.
Parameter Types and Domains
Each tunable parameter has a specific type and a defined domain of valid values. These domains constrain the search.
- Integer Parameters: e.g.,
threads_per_block∈ {32, 64, 128, 256, 512} - Categorical Parameters: e.g.,
memory_scheme∈ {shared,global,texture} - Ordinal Parameters: e.g.,
loop_orderwhere(i,j,k)is distinct from(k,j,i)The domain can be continuous (e.g., a learning rate) or discrete. For NPU kernel tuning, parameters are almost always discrete and constrained by hardware limits (e.g., maximum threads per block).
Discreteness and Combinatorial Explosion
Configuration spaces for hardware optimization are fundamentally discrete and combinatorial. The total number of configurations is the product of the domain sizes for each parameter. For a kernel with 5 parameters, each with 10 possible values, the space contains 100,000 distinct points. This combinatorial explosion is the primary challenge for auto-tuning, as evaluating every point via direct profiling is computationally prohibitive, requiring heuristic or model-guided search strategies.
Performance Landscape
The configuration space maps to a performance landscape, where each point (configuration) has an associated cost metric (e.g., execution time, power consumption). This landscape is:
- Non-linear: Small parameter changes can cause large, discontinuous performance shifts.
- Non-convex: Contains many local minima and maxima.
- Noisy: Repeated measurements of the same point can vary due to system noise. Understanding this rugged terrain is why simple search methods like grid search are inefficient compared to techniques that build a surrogate performance model.
Constraints and Invalid Regions
Not all parameter combinations are valid or legal. Constraints define invalid regions of the space that must be pruned during search. Common constraints in NPU tuning include:
- Resource Limits: Total shared memory usage per block cannot exceed hardware capacity.
- Divisibility Requirements: Tile sizes must evenly divide problem dimensions.
- Hardware Alignment: Memory access patterns must adhere to byte-alignment rules for coalescing. An effective auto-tuner must either sample only from the valid subspace or have a mechanism to penalize invalid configurations heavily.
Sensitivity and Correlation
Parameters exhibit varying degrees of sensitivity (how much they affect performance) and correlation (how they interact).
- A highly sensitive parameter, like
workgroup_size, causes large performance swings. - Correlated parameters interact; the optimal value for one depends on the value of another (e.g., optimal
tile_sizedepends on chosenmemory_scheme). Identifying these relationships allows search algorithms to focus on important dimensions and model interactions, drastically reducing the number of profiled samples needed to find a near-optimal configuration.
How Configuration Space Works in Auto-Tuning
A precise definition of the foundational search domain in automated performance optimization.
A configuration space is the complete, formally defined set of all possible combinations of tunable parameters that an auto-tuner can explore to optimize a computational kernel for a specific hardware target like an NPU. This space is defined by discrete and continuous variables, such as workgroup size, memory tile dimensions, loop unroll factors, and vectorization parameters, each with their own valid ranges or enumerated values. The structure and size of this space directly determine the complexity and feasibility of the auto-tuning search.
The auto-tuning process systematically samples or navigates this high-dimensional space, evaluating each candidate parameter configuration by executing the kernel and measuring its performance (e.g., latency, throughput). The goal is to find the optimal point that minimizes execution time or maximizes resource efficiency. Efficient search strategies, such as Bayesian optimization or genetic algorithms, are essential because exhaustively evaluating the entire configuration space is computationally prohibitive for real-world kernels.
Common Tunable Parameters in NPU Configuration Spaces
Key hardware and software parameters that define the search space for auto-tuning NPU kernels to achieve optimal performance.
| Parameter | Typical Range / Options | Primary Impact | Tuning Strategy |
|---|---|---|---|
Workgroup / Thread Block Size | 32, 64, 128, 256, 512 | Occupancy, Memory Coalescing | Multiple of warp/wavefront size; balance resource usage |
Tile Size (for loops) | 16x16, 32x32, 64x64, 128x128 | Cache Hit Rate, Memory Bandwidth | Fit within shared memory/L1 cache; minimize padding |
Vectorization / SIMD Width | 2, 4, 8, 16 | Compute Throughput, Instruction Efficiency | Match hardware vector unit size and data type |
Loop Unroll Factor | 2, 4, 8, 16, FULL | Instruction-Level Parallelism, Register Pressure | Trade-off between loop overhead and register usage |
Number of Concurrent Kernels | 1, 2, 3, 4 | Hardware Utilization, Resource Contention | Maximize SM occupancy without causing thrashing |
Shared Memory Allocation per Block | 0KB, 8KB, 16KB, 32KB, 48KB | Intra-block Communication, L1 Cache Size | Balance between shared memory and L1 cache partitioning |
Register File Allocation per Thread | 32, 64, 128, 255 | Occupancy, Spilling to Local Memory | Minimize register pressure to allow more active warps |
Asynchronous Prefetch Depth | 1, 2, 3, 4 | Memory Latency Hiding | Overlap computation with data movement for memory-bound kernels |
Frequently Asked Questions
A glossary of key terms and concepts related to the parameter search domain for auto-tuning NPU kernels.
A configuration space is the complete, multidimensional set of all possible combinations of tunable parameters that define the search domain for an auto-tuning process targeting a Neural Processing Unit (NPU). It formally represents every viable way a computational kernel can be configured for execution on the hardware. For a matrix multiplication kernel, this space might be defined by parameters such as thread block dimensions (e.g., BLOCK_SIZE_M, BLOCK_SIZE_N), memory tile sizes, loop unrolling factors, and vectorization width. The auto-tuner's goal is to efficiently search this space to find the parameter combination that yields the optimal performance—highest throughput or lowest latency—for a specific kernel on a specific NPU architecture.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
The configuration space is the foundational search domain for auto-tuning. These related concepts define the tools, metrics, and search strategies used to navigate it and find optimal performance.
Auto-Tuning
The automated process of searching a configuration space to find the parameter set (e.g., tile size, workgroup dimensions) that yields optimal performance for a computational kernel on specific hardware. It replaces manual trial-and-error with systematic search algorithms.
- Core Mechanism: Iteratively evaluates kernel variants defined by different parameter combinations.
- Objective: Maximize metrics like compute throughput or minimize latency.
- Methods: Can use exhaustive search, random sampling, or guided methods like Bayesian Optimization.
Parameter Search
The systematic exploration of a configuration space. This is the algorithmic heart of auto-tuning, defining how the space is navigated.
- Search Strategies: Range from brute-force grid searches to sophisticated model-based approaches.
- Challenge: The space is often vast and non-convex; efficient search is critical.
- Goal: To find a global or high-quality local optimum for performance without evaluating every possible point.
- Example: Searching over
workgroup_size = {32, 64, 128, 256}andvectorization_factor = {2, 4, 8}.
Performance Model
An analytical or machine-learned model that predicts execution time or resource usage of a kernel based on its parameters and hardware specs. It acts as a surrogate for expensive physical measurements during parameter search.
- Purpose: Guides auto-tuning by predicting the outcome of untested configurations.
- Types: Can be simple analytical models (e.g., roofline model) or complex learned models (e.g., neural networks).
- Inputs: Configuration parameters, hardware characteristics (peak FLOPS, memory bandwidth), and problem size.
- Output: Predicted runtime, helping prioritize promising regions of the configuration space.
Kernel Profiler
A software tool that measures the actual runtime behavior of a kernel executing on hardware. It provides the ground-truth data that defines the performance landscape of the configuration space.
- Measures: Execution time, compute throughput, memory bandwidth utilization, cache hit rate, and hardware performance counter events.
- Role in Tuning: Used to evaluate specific points in the configuration space, feeding data back to the auto-tuner or performance model.
- Types: Includes sampling profilers (low overhead) and instrumentation profilers (high detail).
Bottleneck Analysis
The process of identifying the primary limiting factor that restricts a kernel's performance. It determines why a point in the configuration space performs poorly, guiding the search for better configurations.
- Key Classifications:
- Compute Bound: Limited by ALU speed; improve by increasing occupancy or vectorization factor.
- Memory Bound: Limited by memory bandwidth; improve via memory coalescing or better cache use.
- Latency Bound: Limited by dependency stalls or pipeline stalls.
- Tool Use: Relies on data from kernel profilers and performance counters.
Bayesian Optimization
A sequential, model-based parameter search strategy. It is particularly effective for optimizing expensive-to-evaluate functions, like kernel runtimes, where the configuration space is large.
- Mechanism: Builds a probabilistic surrogate model (often a Gaussian Process) of the performance landscape and uses an acquisition function to decide the most informative configuration to test next.
- Advantage: Intelligently balances exploration (testing uncertain regions) and exploitation (refining known good regions).
- Outcome: Typically finds a near-optimal configuration with far fewer evaluations than random or grid search.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us