Revision ed01550d58f23762bde148bc6d5d881c0b6caae9 authored by Andrew Adams on 04 March 2024, 20:35:29 UTC, committed by Andrew Adams on 04 March 2024, 20:35:29 UTC
This is one of our largest remaining type of magic name. These were explicitly constructed in lots of places and then explicitly checked for with ends_with in lots of places. This PR makes the names opaque. Only CanonicalizeGPUVars.cpp knows what they are, and they don't have to be a single fixed thing as long as they're consistent within a process. Also reduced the number of GPU dimensions to three more uniformly. We were already asserting this, but there was lots of dead code in lowering passes after gpu loop validation that allowed for four. Also fixed a bug I found in is_block_uniform. It didn't consider that the dependence on a gpu thread variable in a load index could be because a let variable encountered depends on a gpu thread variable.
1 parent 7636c44
CMakeLists.txt
cmake_minimum_required(VERSION 3.22)
project(hist)
enable_testing()
# Set up language settings
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
# Find Halide
find_package(Halide REQUIRED)
# Generator
add_halide_generator(hist.generator SOURCES hist_generator.cpp)
# Filters
add_halide_library(hist FROM hist.generator)
add_halide_library(hist_auto_schedule FROM hist.generator
GENERATOR hist
AUTOSCHEDULER Halide::Mullapudi2016)
# Main executable
add_executable(hist_filter filter.cpp)
target_link_libraries(hist_filter
PRIVATE
Halide::ImageIO
Halide::Tools
hist
hist_auto_schedule)
# Test that the app actually works!
set(IMAGE ${CMAKE_CURRENT_LIST_DIR}/../images/rgba.png)
if (EXISTS ${IMAGE})
configure_file(${IMAGE} rgba.png COPYONLY)
add_test(NAME hist_filter
COMMAND hist_filter rgba.png out.png)
set_tests_properties(hist_filter PROPERTIES
LABELS hist
PASS_REGULAR_EXPRESSION "Success!"
SKIP_REGULAR_EXPRESSION "\\[SKIP\\]")
endif ()
Computing file changes ...