https://github.com/halide/Halide

sort by:
Revision Author Date Message Commit Date
2cd9c91 WIP 31 March 2020, 23:46:32 UTC
f2aaab3 foo 31 March 2020, 23:29:32 UTC
8ef7497 foo 31 March 2020, 23:04:57 UTC
22cde9c foo 31 March 2020, 23:00:51 UTC
ad0b40d foo 31 March 2020, 22:57:44 UTC
b357ae8 foo 31 March 2020, 22:54:07 UTC
bacebb5 foo 31 March 2020, 22:47:15 UTC
4430f19 wip 31 March 2020, 22:34:48 UTC
cb6f4a9 Merge pull request #4810 from halide/srj-pr Remove unnecessary pull_request types 31 March 2020, 18:12:43 UTC
4ef4016 Merge pull request #4807 from halide/full_clamp_of_extern_bounds_query Do a full clamp of inner bounds to an outer query 31 March 2020, 18:10:36 UTC
48ccf1d Remove unnecessary pull_request types edited and review_requested are irrelevant for the purposes of presubmit.yml 31 March 2020, 18:01:51 UTC
77a1799 Merge pull request #4805 from Infinoid/python-bilateral_grid GPU fixes for python_bindings/apps/bilateral_grid.py 30 March 2020, 22:49:32 UTC
0cc286e Add a copy_to_host call to bilateral_grid.py. Thanks to steven-johnson for spotting this. 30 March 2020, 20:12:05 UTC
39802c9 Do a full clamp of inner bounds to an outer query This avoids generating buffers with negative extents in cases where the reply to the inner bounds query doesn't overlap the outer bounds query at all, and also, by giving an upper *and* lower bound to these expressions, avoids a type of unbounded access discovered here: https://github.com/halide/Halide/pull/3037#issuecomment-604136412 30 March 2020, 19:03:05 UTC
8097ca3 Fix bilateral_grid.py to check JIT targets when compiling in JIT mode. Fix obsolete interface usage in GPU schedule. 30 March 2020, 18:21:52 UTC
4e44b6a Merge pull request #4665 from halide/srj-llvm8 Drop support for LLVM8 (Issue #4560) 26 March 2020, 22:10:07 UTC
a766000 Update .travis.yml 26 March 2020, 21:35:59 UTC
70808b8 Update .travis.yml 26 March 2020, 20:46:27 UTC
82d935f Update .travis.yml 26 March 2020, 18:50:51 UTC
2f088f9 Merge branch 'master' into srj-llvm8 26 March 2020, 18:22:27 UTC
88b0a7d Merge pull request #4799 from halide/tzumao_generator_documentation add python_extension to generator's usage help text 26 March 2020, 18:21:15 UTC
2396e22 Merge pull request #4795 from seanprime7/cmake_gradient_autoscheduler_test_win Add run_gradient_autoschduler_test_py 26 March 2020, 18:20:46 UTC
817ed65 Merge pull request #4793 from halide/srj-py Enable Python Bindings on Windows by default 26 March 2020, 17:52:17 UTC
f76e527 Merge pull request #4798 from mroavi/master Fix Func name 26 March 2020, 17:50:59 UTC
d55b1a5 add python_extension to generator's usage help text 26 March 2020, 17:22:47 UTC
59844ea Fix Func name 26 March 2020, 03:37:29 UTC
5570649 Merge pull request #4794 from mroavi/master Fix usage of HalideTraceViz 25 March 2020, 20:12:04 UTC
e182890 Fix usage of HalideTraceViz The generation of the row major example in lesson 5 is using an old syntax which results in an error. 25 March 2020, 20:04:54 UTC
f6e2354 Merge pull request #4744 from halide/slow_depthwise_convolution Fix pathologically slow depthwise convolution compilation 25 March 2020, 18:44:32 UTC
5368ae9 Merge branch 'master' into srj-py 25 March 2020, 17:03:54 UTC
fc6e6a5 Update CMakeLists.txt 25 March 2020, 16:58:54 UTC
6d326fc Add run_gradient_autoschduler_test_py Also, fix PATH for run_gradient_autoscheduler_test_cpp on Windows 25 March 2020, 00:01:53 UTC
f402326 Enable Python Bindings on Windows by default They were initially disabled because winbots were misconfigured. Also, drive-by update of test.yml to fix similar issue (even though it's still disabled). 24 March 2020, 22:34:59 UTC
e05e957 Merge pull request #4696 from halide/vksnk/align-strategy Consider variable names of fused function when looking for the loop min/max in compute_shift_factor 24 March 2020, 22:29:26 UTC
9af78d6 Merge branch 'master' into srj-llvm8 24 March 2020, 20:52:31 UTC
758e1e0 Merge pull request #4782 from halide/warp_shuffle_fix Teach lower warp shuffles to recognize lane <= 0 24 March 2020, 19:46:25 UTC
8f21d3e Merge branch 'master' into vksnk/align-strategy 24 March 2020, 17:17:13 UTC
88d693c Merge branch 'vksnk/align-strategy' of https://github.com/halide/Halide into vksnk/align-strategy 24 March 2020, 17:15:52 UTC
e570b27 Merge pull request #4790 from halide/dpalermo_generator_202003 constructor for 'Halide::Internal::StubInput' must explicitly initial… 24 March 2020, 17:14:20 UTC
d7627b1 Merge pull request #4785 from halide/generalize_uniquify_variable_names Generalize uniquify_variable_names 24 March 2020, 17:11:54 UTC
06f6672 constructor for 'Halide::Internal::StubInput' must explicitly initialize const members - Seen when compiling Halide apps with certain versions of clang++ - Seems like a valid complaint (just not reported by all compilers) 24 March 2020, 16:52:00 UTC
0a3dd31 Merge pull request #4788 from halide/vksnk/compute_with_error2 More specific compute_with error message 24 March 2020, 16:40:47 UTC
a5e5092 Merge pull request #4779 from halide/declare_box_touched Don't depend on magic names in allocation bounds inference 24 March 2020, 16:37:11 UTC
84cdba3 Merge remote-tracking branch 'origin/master' into warp_shuffle_fix 24 March 2020, 16:36:18 UTC
1e0a116 Merge pull request #4734 from seanprime7/cmake_python_bindings Cmake python bindings 24 March 2020, 02:04:51 UTC
ba4b858 Merge pull request #4777 from davidok8/maint-fix-linking-with-openmp MAINT: fix linking with OpenMP using the modern CMake way. 24 March 2020, 02:04:29 UTC
0b23698 Merge pull request #4783 from halide/impure_monotonic_fix Calls can't be considered constant if they are impure 23 March 2020, 23:23:25 UTC
464123f Don't depend on function evaluation order. Reserve generated names. 23 March 2020, 22:52:56 UTC
e6ed9fa Merge pull request #4787 from halide/tzumao_associativity_use_graph_equal Use graph_equal instead of equal in prove_associativity 23 March 2020, 22:48:59 UTC
91e9c96 Extend error message with extra information 23 March 2020, 22:39:47 UTC
a7c8ce1 Merge pull request #4769 from halide/mux_tuple mux accepts tuples 23 March 2020, 22:35:11 UTC
73b20ed Merge pull request #4780 from halide/tzumao_autodiff_random_float Fix a bug in autodiff caused by the implicit capture of lower_random 23 March 2020, 22:05:20 UTC
859fae3 Merge branch 'master' into vksnk/align-strategy 23 March 2020, 21:41:45 UTC
d5accff Use local var to get the name 23 March 2020, 21:09:27 UTC
fb1c45a Merge pull request #4778 from halide/clamp_extern_to_outer_bounds Instead of just assuming bounds query results can be lifted, enforce nesting 23 March 2020, 20:38:24 UTC
794ab38 More specific compute_with error message 23 March 2020, 20:30:21 UTC
cd02847 Merge remote-tracking branch 'origin/master' into warp_shuffle_fix 23 March 2020, 19:54:10 UTC
54a8372 Merge remote-tracking branch 'origin/master' into declare_box_touched 23 March 2020, 19:53:35 UTC
dbf3e44 Don't try to move a scope 23 March 2020, 19:52:52 UTC
726d6a1 Added comment why test was disabled. 23 March 2020, 19:42:22 UTC
c3ecb12 Always use parent variable name. Also, disabled test which generates OOB. 23 March 2020, 19:40:25 UTC
6973247 Use graph_equal instead of equal in prove_associativity 23 March 2020, 19:34:18 UTC
5795571 Generalize uniquify_variable_names Currently uniquify_variable_names only works on exactly the kind of duplicate names we tend to generate in bounds inference, and only if you run it on the entire stmt. In other circumstances it does odd things (e.g. attach negative integer suffixes to free variables!), and we risk introducing bugs, as I discovered in another PR. This PR fixes uniquify_variable_names to do the right thing in the general case, and adds tests. Also added some needed functionality to Scope - you can now query the number of nested definitions of the same thing, and you can move a Scope. 23 March 2020, 19:14:25 UTC
6729ea8 Merge pull request #4768 from halide/dpalermo_hexagon_remote_202003 Add SDK_ROOT control to hexagon_remote/Makefile 23 March 2020, 18:20:09 UTC
3d79107 Merge branch 'master' into vksnk/align-strategy 23 March 2020, 18:15:24 UTC
12d1559 Merge pull request #4772 from halide/simplify_min_lt_min_v2 Add simplifications of min(x, y) < min(x, z), and similar 23 March 2020, 17:55:54 UTC
9c3b280 Merge pull request #4770 from seanprime7/readme_widows_cmake_build_command Add LLVM_ENABLE_PROJECTS to cmake command for llvm on Win 23 March 2020, 17:42:09 UTC
76b87bd Merge branch 'master' into mux_tuple 23 March 2020, 17:40:55 UTC
8842595 Turn off python bindings in travis. Travis doesn't have the right Python setup. 23 March 2020, 17:38:32 UTC
a4fc861 refactor intrinsic derivatives 23 March 2020, 17:15:06 UTC
184eda6 Delete erroneous namespace comment 23 March 2020, 17:07:29 UTC
4a740a4 Add test 23 March 2020, 17:05:58 UTC
0a80ccc Impure calls should not be considered constant in is_monotonic even if their args are constant. 23 March 2020, 17:03:22 UTC
cc03d54 Teach lower warp shuffles to recognize lane <= 0 The warp shuffle pass needs to know when code is dropping down to a reduced number of threads. Previously it only understood lane < constant. This teaches it to recognize the lane <= constant too. Unfortunately I don't currently have a failing case that this fixes, but I did during an intermediate state of another branch. 23 March 2020, 17:01:54 UTC
fcba06e Merge branch 'master' into tzumao_autodiff_random_float 23 March 2020, 13:12:09 UTC
c53efeb add const to range-based for when appropriate 23 March 2020, 02:18:35 UTC
4dfd68b use range-based for when appropriate 23 March 2020, 02:15:05 UTC
fef4e55 clang-tidy comments 22 March 2020, 23:34:01 UTC
7b17943 remove debug code 22 March 2020, 23:01:26 UTC
51acc1e Change lower_random interface instead of fixing autodiff 22 March 2020, 22:59:41 UTC
942f628 clang format 22 March 2020, 22:44:07 UTC
da7b07e clang format 22 March 2020, 22:42:41 UTC
7ce3610 only replace the domain in fill_rvar_domain when the domain is not defined 22 March 2020, 22:39:36 UTC
1c28ec2 Fix a bug in autodiff caused by the implicit capture of lower_random 22 March 2020, 22:34:05 UTC
dd3b52f Don't depend on magic names in allocation bounds inference This is another independent improvement carved off of #3037 / #4713 Allocation bounds inference for a Func foo depends on the magic names foo.x.min/foo.x.max at the realization site. The only reason it needs them is to ensure it knows that an extern stage is going to write to the whole region required. We can just tell it that earlier instead with a marker in the IR that says "you should treat this marker as a write to this buffer over this region". Presto, no magic name. 22 March 2020, 22:29:58 UTC
b87238a Instead of just assuming bounds query results can be lifted, enforce nesting TL;DR: This is an improvement from #3037 / #4713 that can be tested and checked in independently. It removes one type of magic name usage. Allocation bounds inference (well, boxes_touched) relies on magic names in its handling of getting the min/max out of a bounds query result. It just lifts them out of their containing scope (see the deleted code in Bounds.cpp below), assuming a bounds query buffer of the same name also exists in the containing scope, and also assuming that the result of that outer bounds query was a valid interval containing the result of the inner bounds query. Yuck. I removed that special handling from boxes_touched, and instead explicitly clamped the inner bounds query result to be within the outer region required, which comes from the outer bounds query. That gives boxes_touched a way to bound the impure call with something. So now if we have a misbehaving extern stage, which lies in its outer bounds query and says it's going to ask for less than it does in the inner bounds query, it simply doesn't get what it asks for in the inner bounds query. It gets the intersection of the outer bounds query result and the inner bounds query result. Too bad. This behavior is illustrated in the new test. Formerly I'm not sure what happened, because we were just assuming that it couldn't occur. I guess that's UB. One of the tests in storage_folding actually broke this rule, but it didn't matter before because it never actually accessed the input. Storage folding needed adjusting because it incorrectly didn't even try to fold now that the bound seems to be pure (it's a .outer_min Variable, whereas before it was the get_min call referencing the outer bounds query result). 22 March 2020, 22:15:15 UTC
39a31b7 MAINT: fix linking with OpenMP using the modern CMake way. 22 March 2020, 14:37:38 UTC
d397e34 Merge pull request #4774 from halide/simplify_likely_min Simplifier improvements from #3037 21 March 2020, 20:37:23 UTC
d5a6d40 Merge remote-tracking branch 'origin/master' into mux_tuple 21 March 2020, 18:32:01 UTC
5fb418b Merge pull request #4773 from halide/faster_add_image_checks Speed up add_image_checks 21 March 2020, 18:07:29 UTC
0df48e4 Turn off the python_bindings build by default on Windows. It can be turned on with -DWITH_PYTHON_BINDINGS=On in the cmake command line. 21 March 2020, 00:10:48 UTC
30bb4f1 count instead of find 20 March 2020, 21:56:40 UTC
9777cf1 Add missing module name 20 March 2020, 21:48:53 UTC
e43c850 Fix python bindings 20 March 2020, 21:48:03 UTC
2a43241 Add two new select simplification rules 20 March 2020, 21:26:33 UTC
0cd347e Simplify min(likely(x), x) to x We were simplifying it to likely(x), which I believe is wrong. A likely marks which branch of the immediately containing min/max should be optimized for. Once it has been optimized for that, the likely should vanish. It's not supposed to be transitive to containing min/max nodes too. 20 March 2020, 21:26:22 UTC
136fce4 Track constant bounds of likely in simplifier 20 March 2020, 21:24:31 UTC
1e4887a Always remove dead let exprs in simplifier 20 March 2020, 21:24:16 UTC
3de1189 Speed up add_image_checks by pre-trimming down to the portion of the stmt that actually touches input/output buffers. On master, timing add_image_checks for a few apps: local_laplacian: 16ms lens_blur: 18ms interpolate: 11ms fft: 37ms On this branch: local_laplacian: 2.4ms lens_blur: 11ms interpolate: 3.5ms fft: 3.9ms This change was pulled from #3037 20 March 2020, 21:00:49 UTC
7a4ba57 Add simplifications of min(x, y) < min(x, z), and similar In a comparison between two mins, if a term on one side dominates a term on the other, we can drop it. Consider: ``` min(x, y) < min(z, w) ``` First we'll assume we can statically prove w <= y (e.g. because they are equal). Then: ``` min(x, y) < min(z, w) = (x < min(z, w)) || (y < min(z, w)) = (x < min(z, w)) || (y < z && y < w) = (x < min(z, w)) || (y < z && false) = (x < min(z, w)) || false = x < min(z, w) ``` Alternatively if we can prove y < w ``` min(x, y) < min(z, w) = (min(x, y) < z) && (min(x, y) < w) = (min(x, y) < z) && (x < w || y < w) = (min(x, y) < z) && (x < w || true) = (min(x, y) < z) && true = min(x, y) < z ``` These rules were helpful #3037. Carving them out into a separate PR here. The basic form of them existed in the rule synthesis branch. I added variants with constants and more commutations. 20 March 2020, 20:45:27 UTC
back to top