Skip to content

Commit f58f54a

Browse files
committed
[Backend][Relax] Add NPU BYOC backend tutorial with architectural concepts
This commit introduces a vendor-neutral NPU backend that demonstrates architectural patterns common across Neural Processing Units. The implementation covers key NPU concepts including multi-tier memory hierarchy management, automatic tiling for large tensors, quantization handling, and specialized execution engines. It shows how NPUs manage memory across different tiers (L0/L1/L2/L3), tile operations to fit in on-chip SRAM, and dispatch operations to dedicated compute units. This serves as an educational template for developers creating NPU backends, demonstrating BYOC integration while teaching NPU-specific optimization strategies. Uses CPU emulation for testing without requiring actual NPU hardware. Addresses feedback from apache#18201 requesting generic NPU BYOC tutorials.
1 parent 3e13b03 commit f58f54a

File tree

4 files changed

+1486
-0
lines changed

4 files changed

+1486
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
"""
18+
Example NPU Backend for BYOC Integration
19+
20+
This module provides an educational example of how to implement
21+
a custom NPU backend in TVM using the Bring Your Own Codegen (BYOC)
22+
framework. It demonstrates key NPU architectural concepts including
23+
memory hierarchy, tiling, quantization, and operation fusion.
24+
25+
The patterns module registers all supported NPU operations and their
26+
constraints, making them available for graph partitioning.
27+
"""
28+
29+
from . import patterns # noqa: F401
30+
31+
__all__ = ["patterns"]

0 commit comments

Comments
 (0)