Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
fee2479
Add Func::approximate_by() directive and Approximation combinators
alexreinking Sep 29, 2026
42a694d
Make Approximation a value-semantic, duck-typed handle
alexreinking Sep 29, 2026
ee86fee
Accept simple Approximation unit forms and add Pointwise
alexreinking Sep 29, 2026
3368537
Discover Approximation intermediates automatically
alexreinking Sep 29, 2026
0fbe246
Label Approximation stages and expose a printable trace tree
alexreinking Sep 29, 2026
d8836a7
Add named ports, declared signatures, and describe() to Approximation
alexreinking Sep 29, 2026
0e41283
Add property-based testing and round-trip verification for Approximat…
alexreinking Sep 30, 2026
463657c
Rewrite the Approximation design doc and add it to the Sphinx guides
alexreinking Sep 30, 2026
7ee9bb9
Fix Approximation decode port names and unreadable encodings in tests
alexreinking Sep 30, 2026
3aa7fdb
Move ApproximationTesting.h out of Halide.h into tools/
alexreinking Sep 30, 2026
41d19a0
Replace Apply with Parallel; make port names one identity per wire
alexreinking Sep 30, 2026
a2d32c6
Add tutorial lesson 25: approximations (GGML Q4_0)
alexreinking Sep 30, 2026
ef23275
Keep only generic Approximation components in core
alexreinking Sep 30, 2026
404844f
Add Approximation to the Makefile build
alexreinking Sep 30, 2026
3a83ab2
Fix no-RTTI builds and a Parallel name clash in parallel_fork
alexreinking Sep 30, 2026
c277ad0
Fix no-RTTI labels, no-exception tests, float tolerances, and clang-tidy
alexreinking Sep 30, 2026
436292a
Rename compute_offline to sever in approximations
alexreinking Oct 2, 2026
5fef698
Remove version qualifiers from approximation design
alexreinking Oct 2, 2026
58bc243
Make layout units rank-polymorphic over trailing batch dimensions
alexreinking Oct 6, 2026
ae90a21
Add ApproximationResult::decode_funcs()
alexreinking Oct 6, 2026
f731ec3
Add tools/halide_approximation_codec.h
alexreinking Oct 6, 2026
731d0f2
make_codec: compute_root only Funcs with update definitions
alexreinking Oct 6, 2026
7c23c3c
Approximations: name codec ports explicitly; check StructLayout recor…
alexreinking Oct 6, 2026
df1eef6
Add BlockReshape::tiles for multi-dimensional dense tiling
alexreinking Oct 7, 2026
de260ea
approximation_components: constrain the tiles test's output stride
alexreinking Oct 10, 2026
0baf64e
BlockReshape: leave off the % on the last extent in decode
alexreinking Oct 10, 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 @@ -656,6 +657,7 @@ HEADER_FILES = \
AlignLoads.h \
AllocationBoundsInference.h \
ApplySplit.h \
Approximation.h \
Argument.h \
AssociativeOpsTable.h \
Associativity.h \
Expand Down Expand Up @@ -1730,6 +1732,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 @@ -2459,6 +2470,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,006 changes: 1,006 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