Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7af5b8a
Add Func::approximate_by() directive and Approximation combinators
alexreinking Sep 29, 2026
5a2262d
Make Approximation a value-semantic, duck-typed handle
alexreinking Sep 29, 2026
4f10940
Accept simple Approximation unit forms and add Pointwise
alexreinking Sep 29, 2026
a283f92
Discover Approximation intermediates automatically
alexreinking Sep 29, 2026
d496efe
Label Approximation stages and expose a printable trace tree
alexreinking Sep 29, 2026
4885ff7
Add named ports, declared signatures, and describe() to Approximation
alexreinking Sep 29, 2026
c849197
Add property-based testing and round-trip verification for Approximat…
alexreinking Sep 30, 2026
45aeabd
Rewrite the Approximation design doc and add it to the Sphinx guides
alexreinking Sep 30, 2026
d00e98c
Fix Approximation decode port names and unreadable encodings in tests
alexreinking Sep 30, 2026
aed5080
Move ApproximationTesting.h out of Halide.h into tools/
alexreinking Sep 30, 2026
41573b3
Replace Apply with Parallel; make port names one identity per wire
alexreinking Sep 30, 2026
6131310
Add tutorial lesson 25: approximations (GGML Q4_0)
alexreinking Sep 30, 2026
6424416
Keep only generic Approximation components in core
alexreinking Sep 30, 2026
8c7164d
Add Approximation to the Makefile build
alexreinking Sep 30, 2026
d59b6c7
Fix no-RTTI builds and a Parallel name clash in parallel_fork
alexreinking Sep 30, 2026
9e90a0f
Fix no-RTTI labels, no-exception tests, float tolerances, and clang-tidy
alexreinking Sep 30, 2026
1c58426
Rename compute_offline to sever in approximations
alexreinking Oct 2, 2026
d4fdb35
Remove version qualifiers from approximation design
alexreinking Oct 2, 2026
d6a5716
Make layout units rank-polymorphic over trailing batch dimensions
alexreinking Oct 6, 2026
f1930a5
Add ApproximationResult::decode_funcs()
alexreinking Oct 6, 2026
88a6a2e
Add tools/halide_approximation_codec.h
alexreinking Oct 6, 2026
e98023c
make_codec: compute_root only Funcs with update definitions
alexreinking Oct 6, 2026
54b605d
Approximations: name codec ports explicitly; check StructLayout recor…
alexreinking Oct 6, 2026
d14695e
Add BlockReshape::tiles for multi-dimensional dense tiling
alexreinking Oct 7, 2026
91eee2d
approximation_components: constrain the tiles test's output stride
alexreinking Oct 10, 2026
700c0bf
BlockReshape: leave off the % on the last extent in decode
alexreinking Oct 10, 2026
f58deb5
Format shared inline schedule validation
alexreinking Oct 16, 2026
0704ff6
approximations: derived ports (Derive) and their substitution
alexreinking Oct 18, 2026
1484402
approximations: derived_ports_hold and closed properties, with tests
alexreinking Oct 18, 2026
7802069
approximations: document derived ports, matching, and the new properties
alexreinking Oct 18, 2026
e23a7d8
approximations: look through index tags when matching derived ports
alexreinking Oct 18, 2026
1586895
Read derived ports through fresh decode-side Funcs
alexreinking Oct 19, 2026
638be75
Add user-defined port tags to Approximations
alexreinking Oct 20, 2026
52e3790
Match derived-port arguments through affine indices
alexreinking Oct 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,7 @@ SOURCE_FILES = \
AlignLoads.cpp \
AllocationBoundsInference.cpp \
ApplySplit.cpp \
Approximation.cpp \
Argument.cpp \
AssociativeOpsTable.cpp \
Associativity.cpp \
Expand Down Expand Up @@ -660,6 +661,7 @@ HEADER_FILES = \
AlignLoads.h \
AllocationBoundsInference.h \
ApplySplit.h \
Approximation.h \
Argument.h \
AssociativeOpsTable.h \
Associativity.h \
Expand Down Expand Up @@ -1747,6 +1749,15 @@ $(FILTERS_DIR)/armv86a_multitarget.a: $(BIN_DIR)/arm_i8mm_multitarget.generator
$(CURDIR)/$< -g arm_i8mm_multitarget -f armv86a_multitarget -e static_library,c_header -o $(CURDIR)/$(FILTERS_DIR) \
target=$(ARM_I8MM_MULTITARGET_BASE)-armv86a-no_runtime,$(ARM_I8MM_MULTITARGET_BASE)-no_runtime

# approximation_codec builds its decode half from the same generator.
$(FILTERS_DIR)/approximation_codec_decode.a: $(BIN_DIR)/approximation_codec.generator
@mkdir -p $(@D)
$(CURDIR)/$< -g approximation_codec -f approximation_codec_decode $(GEN_AOT_OUTPUTS) -o $(CURDIR)/$(FILTERS_DIR) target=$(TARGET)-no_runtime direction=decode

$(BIN_DIR)/$(TARGET)/generator_aot_approximation_codec: $(FILTERS_DIR)/approximation_codec_decode.a

$(BIN_DIR)/$(TARGET)/generator_aotcpp_approximation_codec: $(FILTERS_DIR)/approximation_codec_decode.halide_generated.cpp

$(FILTERS_DIR)/msan.a: $(BIN_DIR)/msan.generator
@mkdir -p $(@D)
$(CURDIR)/$< -g msan -f msan $(GEN_AOT_OUTPUTS) -o $(CURDIR)/$(FILTERS_DIR) target=$(TARGET)-msan
Expand Down Expand Up @@ -2476,6 +2487,8 @@ install: $(LIB_DIR)/libHalide.a $(BIN_DIR)/libHalide.$(SHARED_EXT) $(INCLUDE_DIR
cp $(ROOT_DIR)/tools/RunGenMain.cpp $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_image.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_image_io.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_approximation_codec.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_approximation_testing.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_image_info.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_malloc_trace.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_thread_pool.h $(PREFIX)/share/halide/tools
Expand Down
1,202 changes: 1,202 additions & 0 deletions doc/Approximation.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions doc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ set(_sphinx_static_files
"${CMAKE_CURRENT_SOURCE_DIR}/conf.py"
"${CMAKE_CURRENT_SOURCE_DIR}/index.md"
"${CMAKE_CURRENT_SOURCE_DIR}/guides.md"
"${CMAKE_CURRENT_SOURCE_DIR}/Approximation.md"
"${CMAKE_CURRENT_SOURCE_DIR}/BuildingHalideWithCMake.md"
"${CMAKE_CURRENT_SOURCE_DIR}/CodeStyleCMake.md"
"${CMAKE_CURRENT_SOURCE_DIR}/CustomRuntimes.md"
Expand Down
1 change: 1 addition & 0 deletions doc/guides.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
BuildingHalideWithCMake
HalideCMakePackage
CodeStyleCMake
Approximation
CustomRuntimes
FuzzTesting
GeneratorCache
Expand Down
Loading
Loading