https://github.com/halide/Halide

sort by:
Revision Author Date Message Commit Date
21b3c85 Relax overzealous pruning rule We don't allow schedules that fuse to the extent that we can no longer vectorize. This was implemented incorrectly though. The check assumed that something was going to be compute_at inside the innermost loop, and neglected the possibility that we were about to tile that loop. 28 June 2021, 18:51:40 UTC
5aeb8db [hannk] Don't mark Tensors as input or output (#6094) * Refactor transforms.cpp, no functional change * Use Op::is_input(), Op::is_output * Update configure_cmake.sh 17 June 2021, 23:04:26 UTC
d81f5c3 Provide bounds of rvars for all functions in the fused group (#6078) * Provide bounds of rvars for all functions in the fused group * Just use constant * Comments + rename variable 17 June 2021, 16:10:33 UTC
27ae113 [hannk] More Hygiene (#6093) * [hannk] More Hygiene - TensorStorage takes a more sensible set of args for ctor - Tensors don't need to be movable or copyable - Since we are now using C++17, we can use std::make_unique instead of make_op * Restore make_op * clang-format * Remove unnecessary TensorStorage methods 17 June 2021, 00:57:38 UTC
66ff71f [hannk] Cleanup: move SmallVector, Tensor to their own source files (#6091) * Move SmallVector, Tensor to their own files * cleanup 16 June 2021, 23:33:35 UTC
a590c17 [hannk] Remove unused Op::clone() methods (#6092) We don't call these anymore, so remove them and the related TensorMap code. 16 June 2021, 23:30:47 UTC
4fda2c6 Handle negative shifts in CodeGen_C (#6087) * Handle negative shifts in CodeGen_C * trigger buildbots * Emit code directly if shift was casted to signed int Co-authored-by: Steven Johnson <srj@google.com> 16 June 2021, 17:28:21 UTC
292a35a Added fixes to issues regarding using HALIDE_DEBUG_MATCHED_RULES (#6088) * added operator<< for IsMaxValue, IsMinValue, and moved build_replacement(after) to be called before debug matched rules Co-authored-by: Steven Johnson <srj@google.com> 15 June 2021, 20:06:31 UTC
ebae3cd Changes for building with Hexagon SDK 4.3.0.0 & android-ndk-r19c (#6072) * Changes for building with Hexagon SDK 4.2.0.2 & android-ndk-r19c * Drop libsim_qurt_vtcm.a (now part of libsim_qurt.a) * Fix for clang-format-lint * Update to use SDK 4.3.0.0 / HEXAGON_Tools 8.4.11 * Updated binaries & README.md * trigger buildbots * Updated binaries after merge of master * Update SDK comment for >sm8350 Co-authored-by: Steven Johnson <srj@google.com> 14 June 2021, 21:51:22 UTC
98fdd9a Add more ways for DMA-BUF to fallback to libion.so (#6085) - Try to access libdmabufheap.so, if it succeeds try using DMA-BUF - If there are any errors seen with DMA-BUF, fallback to libion.so 10 June 2021, 01:44:16 UTC
f468bcd [hannk] Move flag-parsing code into ModelRunner (#6082) * [hannk] Move flag-parsing code into ModelRunner This allows compare_vs_tflite's main function to be very thin, so we don't have to replicate logic for different main() functions elsewhere * Update model_runner.h 09 June 2021, 18:13:13 UTC
ea1aabd Fix for upstream LLVM (Fixes #6079) (#6080) 09 June 2021, 15:58:41 UTC
cdac77b Require C++17 for Halide. (#5282) Require C++17 for Halide. 08 June 2021, 17:05:16 UTC
3b046ea Convert some Intrinsic calls to PureIntrinsic (#6070) * Convert some Intrinsic calls to PureIntrinsic * Fixes 07 June 2021, 20:57:24 UTC
d2ca93a Remove large_buffers flag (#6077) 07 June 2021, 19:33:31 UTC
af628a7 Fix dubious "gather" intrinsic for hvx (#6069) I'm not sure if this is a bug (per se) or not, but: We define an intrinsic for `Call::hvx_gather`, and at several points check for `is_intrinsic(Call::hvx_gather)`, but we never actually create such a Call. Instead, `make_gather` just uses the naked string `"gather"`, which is not the same thing. How is this working? (Is it working?) Opening this as a PR to gather input (no pun intended) about what's going on here. 03 June 2021, 23:39:03 UTC
00bfad7 Rework cross-compiling integration test to use simpler two-stage build (#6068) 02 June 2021, 22:33:45 UTC
8f849ae Add DMA-BUF support to host_malloc (#6042) * Add DMA-BUF support to host_malloc - use DMA-BUF if libdmabufheap.so is present - fallback to ION for older devices/OS - ION APIs are no longer supported on Android-S/12 - added context to the HAP_power_get/set calls - NULL power context not allowed on newer devices * Fixes for clang-format check * Fix more clang-format checks * Replace int with ion_user_handle_t and update comments * Sync changes to be closer to upstream * Updates from review * Remove unused attribute((weak)) protos * Add HAP_power_destroy/atexit * Add HAP_power_destroy/HAP_power_destroy_client for SDK 3.3.3 * Replace power_context malloc/free with address of global * Remove free_HAP_power_context * Update skel (since they snuck in anyway) * Just return address of global as power_context, don't store it * Updates from review 01 June 2021, 17:40:32 UTC
445ddd0 Allow hannk-delegate input and output tensors to share memory with tflite (#6030) * Allow hannk-delegate input and output tensors to share memory with tflite We previously allocated duplicate memory buffers for the input and output tensors, and just copied them back and forth as needed, which wastes memory and cycles. Now, we declare the input and output tensors to be 'external', and update the host pointer before every interpreter run. Note that dynamic tensors are still a bit of a special case: we still do duplicate allocations there (plus memcpy), because in the most general case we can't know the final size needed until we run the pipeline, but we need to allocate that output to run the pipeline. There are ways we could finesse this -- e.g., give dynamic tensors a lambda callback to allow them to resize the TFLite tensor and then use that storage -- but since dynamic tensors don't seem to be common or large in our test cases, I'm doing it this way for now. (I may circle back and try the lambda approach later.) Note that this moves the implicit init of `is_constant_` out of the Tensor ctor, and instead always requires an explicit call to `set_constant()`, which I think makes the situation much clearer. * Update hannk_delegate.cpp 27 May 2021, 23:14:21 UTC
a500607 Strengthen constant upper bound logic slightly (#6062) * Relax requirements for MemoryType::Register * Add comment 27 May 2021, 18:03:48 UTC
037d7ed Upgrade d8 version for wasm testing (#6055) We were using a variant of v8.9, but various late-breaking variations in the final spec implementation didn't make it into V8 until v9.1; using top-of-tree LLVM and EMCC require v9.1+ to avoid obscure errors. 24 May 2021, 20:47:23 UTC
d64b713 Fix bounds information in ExprInfo for overflow in simplifier (#6012) * fix bounds in ExprInfo for overflow in simplifier * move bounds clearance to visitor on signed_integer_overflow * add test for bad Let behavior on overflow 23 May 2021, 15:06:01 UTC
677bf30 Scalar loads/stores shouldn't invalidate predicate vectorization (#6041) * Scalar loads/stores shouldn't invalidate predicate vectorization * Allow only scalar vars which don't depend on the vectorized var. * Add test * Fix build * Change test values and remove TODO, because now predicated load/stores are generated again 21 May 2021, 03:53:55 UTC
626c34a Don't emit aligned loads to unaligned addresses (#6047) * Don't emit aligned loads to unaligned addresses Fixes #6046 20 May 2021, 19:11:24 UTC
c87976e Use signed exponents for conv too, clean up bounds query (#6050) 20 May 2021, 19:00:07 UTC
9ac150f Fix tgz/package.sh (#6048) * Use `realpath` instead of `readlink` * Pipe in toolchain file to tgz/package.sh 20 May 2021, 17:26:51 UTC
bfd5416 Bump Halide version to 13.0.0 (#6040) 19 May 2021, 21:44:18 UTC
4027dc4 Allow negative output shifts in depthwise_conv (#6039) At least one tflite model found in the wild uses this, so we must support it. 19 May 2021, 21:20:43 UTC
62eb147 Fix bug with tensor aliasing. (#6038) 19 May 2021, 21:20:26 UTC
b5a34c3 Update README for Halide 12 release. (#6034) 19 May 2021, 20:47:20 UTC
1c0ff0f Fix Windows ZIP package script. (#6035) 19 May 2021, 20:11:38 UTC
dfe0f97 Enable a wasm-simd op in simd_op_check that is now generated in LLVM13 (#6024) 19 May 2021, 19:57:54 UTC
6a1e529 Remove duplicate -e argument in bilateral_grid (#6008) (#6033) 19 May 2021, 17:21:37 UTC
5bd5a04 Also invaldiate alignment if the type can't represent it. (#6032) 19 May 2021, 05:17:07 UTC
cdc0223 More simplifier rules (#6017) * More simplifier rules. * More simplifier rules. * More variations of these rules * Remove rules that try to pull negative out of multiply, add quantized ramp rules * Add is_const(x, value) predicate * These might be useful too. 19 May 2021, 00:46:20 UTC
622164e Various simplifier improvements (#5993) * Redo hoisting if statements * Track bounds through casts (fixes #5905). * Improve and add rules to simplify TailStrategy::Predicate/TailStrategy::GuardWithIf * Replace out of bounds loads/stores with undef. * Fix min * Replace rules with generated ones. * Replace rules with synthesized rules * Remove unnecessary predicates. * Fix out of bounds load/store removal for loads/stores that are a different type than the allocation * Fix no-op else cases. * Update test for new behavior. * Use unreachable instead of undef for out of bounds loads/stores * Update IROperator.h * Fix unsafe evaluate tests * Learn from (x * a) / b == c * Don't let initial leaves depend on the variable itself. * Remove sketchy rules, only learn from constants. * clang-format * Support any constant equation when learning facts. * clang-format * trigger buildbots * Don't need this with abadams/dont_substitute_complex_constraints * Don't treat unreachable as pure * Don't track possibly overflowing min/max * Remove unreachable in the simplifier. * More aggressive removal of unreachable for ifs * Remove for loops with unreachable bodies * Remove bad rules. * Fix both branches unreachable. * Also make adjacent code to unreachable loops unreachable. Co-authored-by: Steven Johnson <srj@google.com> 18 May 2021, 17:53:16 UTC
253e93d Add an ErrorReporter hook to TfLiteModelRunner (#6021) This allows us to silence some (but not all) of the noise that TfLite logs when we disable our own verbosity. 18 May 2021, 16:37:18 UTC
15f51f3 Fix apps/hannk configure_cmake.sh script (#6018) * Fix apps/hannk configure_cmake.sh script * trigger buildbots 18 May 2021, 01:03:14 UTC
b45caa8 Add Ubuntu packaging scripts and GHA testing (#5754) * Fix CMake & packaging glitches for Ubuntu package. * Add Ubuntu packaging scripts and presets. * Add GHA workflow to test packaging and usage on Ubuntu * Address review comments. 17 May 2021, 23:48:48 UTC
e711235 Small HVX fixes (#5990) * Small HVX fixes * Simpler align_up implementation. * Simpler fix for small vector loads. * Fix non-native deinterleaving of arguments to patterns * Tweak register count for Hexagon. * I don't know what happened but this works now. * Bits and bytes r hard * Avoid bias wrapper when not needed * I think these deinterleaves are safe. * Align the input of depthwise with depth multiplier 1. * Revert bad merge due to weird GitHub UI Co-authored-by: Steven Johnson <srj@google.com> 17 May 2021, 22:48:10 UTC
ed6eccc fix package.sh perms (#6016) 17 May 2021, 16:12:30 UTC
adb1e05 Fix local laplacian upsample (#6011) 16 May 2021, 22:01:00 UTC
deea5ec Substituting complex expressions for constrained scalar inputs makes … (#6014) * Substituting complex expressions for constrained scalar inputs makes a mess Substituting in constants and variables is probably fine. * Remove extra loop Co-authored-by: Dillon Sharlet <dsharlet@google.com> 15 May 2021, 22:50:08 UTC
50d7640 Permit "safe" parallel scatters, even when they race (#4841) lets the atomic() scheduling directive also apply to simple assignments in addition to associative commutative operators, e.g. hist(f(r.x), x) = g(x) is safe to parallelize over r.x if the stores are atomic, because the RHS doesn't depend on the hist or r.x 15 May 2021, 21:55:49 UTC
878c3ec Fix CodeGen_C::print_scalarized_expr (#6006) * Fix CodeGen_C::print_scalarized_expr * CppVector/NativeVector object doesn't have .replace() anymore. * Initialize vector with zero to avoid warning. * Actually, can't assign to CppVector (only to NativeVector), so do ::broadcast instead * Leave it uninitialized 15 May 2021, 16:14:45 UTC
b829d12 Support Shuffle::extract_element from list of scalars in CodeGen_C (#6007) 15 May 2021, 16:13:54 UTC
69eed6e Add -fpic option to debug version on non-windows .ll file (#6000) Else, it eliminates reference to global offset table for symbols to be resolved from remote library causing runtime crash with -debug option. Co-authored-by: Suyog Sarda <ssarda@codeaurora.org> 14 May 2021, 16:51:32 UTC
e0ac07b Upgrade hannk TFLite version to 2.5.0 (#6009) https://github.com/tensorflow/tensorflow/releases/tag/v2.5.0 14 May 2021, 16:49:01 UTC
75a079a Use presets in zip/package.bat 13 May 2021, 18:36:59 UTC
3f3ce62 Use presets in tgz/package.sh 13 May 2021, 18:36:59 UTC
a81b86b Move packaging scripts from tools/ to packaging/<type>/ 13 May 2021, 18:36:59 UTC
bf32585 Move packaging support files into common directory. 13 May 2021, 18:36:59 UTC
f0db1c6 Split Halide CMake helpers into separate package. 13 May 2021, 18:36:59 UTC
02a8f87 Remove same-directory shared/static mixing 13 May 2021, 18:36:59 UTC
5cdbcb0 Re-work packaging to support complex formats (like DEB) 13 May 2021, 18:36:59 UTC
568d18c Fix dependencies in FFT app. 13 May 2021, 18:36:59 UTC
c61b8cb Guard against overflow in constant folding for EQ rewrite rules (Fixes #5998) (#6002) * guard against constant folding overflow in EQ rewrite rules * trigger buildbots Co-authored-by: Steven Johnson <srj@google.com> 13 May 2021, 17:42:34 UTC
b2947e9 Fix Windows apps (#5999) * Place DLLs on Windows by copying. * Disable Hannk on Windows by default 12 May 2021, 20:55:49 UTC
6bb87cf Stop interleaving stores from generating too-large vectors (#5996) * Stop interleaving stores from generating too-large vectors * Remove integer constant * Use mul_would_overflow helper instead 12 May 2021, 16:07:25 UTC
33308d9 Add pmaddubsw support (#5997) * Add pmaddubsw support * Move pmaddubsw checks to ssse3 * These patterns rae a bit finnicky 12 May 2021, 16:06:49 UTC
3dce2d5 Small H::R::B cleanups and improvements (#5957) * Reuse helpers from halide_buffer_t * Combine decref and decrev_dev to hopeuflly reduce overhead. * Remove redundant public * This old logic was necessary Co-authored-by: Steven Johnson <srj@google.com> 11 May 2021, 19:18:20 UTC
257b2f5 Small performance portabiilty tweaks (#5989) Co-authored-by: Steven Johnson <srj@google.com> 11 May 2021, 00:10:01 UTC
6b2732a Fix build with asserts enabled (#5987) * Minor cleanups after #5983 * Work around linker breakage!? * This doesn't need to be a constant. * Mark power_of_two constructor explicit Co-authored-by: Steven Johnson <srj@google.com> 10 May 2021, 22:51:37 UTC
fcf9046 Fix specializing on stride issue (fixes #5907) (#5950) * Fix specializing on stride issue (fixes #5907) * Remove stale comment * Add broadcasting test to CMakeLists.txt * remove_dead_lets -> remove_dead_code * Add test for specializing only on stride. * Remove broadcasting performance test. * Also remove from CMake 10 May 2021, 21:47:22 UTC
6e23346 Refactor hannk's compare_vs_tflite code to be mostly library (#5991) * Refactor compare_vs_tflite into library+shell Also, drive-by change to the test names to keep them matching filenames more closely * wip * Update compare_vs_tflite.cpp * wip * Fixes * clang-format * Fix Makefile * trigger buildbots 10 May 2021, 20:12:06 UTC
e33438a Revert "Stack input and filter to reduce generated code in FFT app (#5985)" (#5992) This reverts commit d2539287fe4c0c51128a78dc51c2c6d1812cd694. 10 May 2021, 19:23:11 UTC
d253928 Stack input and filter to reduce generated code in FFT app (#5985) * Stack input and filter to reduce generated code. * Change comments. 10 May 2021, 17:57:07 UTC
9eeade3 Rename CHECK->HCHECK, LOG->HLOG in hannk (#5986) Quick-n-dirty rename to avoid conflicts with Abseil/google3. Longer term fix will be forthcoming. 10 May 2021, 17:24:10 UTC
2e47968 Fix for upstream LLVM (#5988) * Fix for upstream LLVM * Fixes 10 May 2021, 17:23:24 UTC
5550f96 Don't hardcode depthwise padding. (#5984) 07 May 2021, 22:44:40 UTC
e0b7d8a Refactor quantized multiplications (#5983) * Refactor quantized multiplications * Move comment. * clang-format * base -> mantissa 07 May 2021, 22:44:03 UTC
e980b27 advance_ptrs() should use refs, not ptrs (#5981) * advance_ptrs() should use refs, not ptrs Examination of compiled output (x86-64, clang w/ optimizer) shows slightly better codegen. * Update HalideBuffer.h 07 May 2021, 18:43:54 UTC
aac383f Add dynamically-typed scalar inputs to Generator (#5953) (#5965) * Add dynamically-typed scalar inputs to Generator (#5953) * Update stubuser_generator.cpp * clang-format 07 May 2021, 18:32:39 UTC
aba3a80 Use a VectorReduce not to determine if any lanes are true in Hexagon backend (#5978) 07 May 2021, 02:47:08 UTC
9f7a459 Add missing #include in buffer_util.h (#5979) * Add missing #include in buffer_util.h * Update buffer_util.h 06 May 2021, 21:57:47 UTC
3f799ff Optimize copy_from a little (#5977) 06 May 2021, 21:35:55 UTC
3f83f5a Add transpose op (#5968) * Add transpose op. * Fix type requirements * Add tests for some misc ops. * Fix type checks 06 May 2021, 20:25:57 UTC
93c878e Optimize add generator (#5972) * Optimize add generator. * Update benchmarks * Vectorize wider for more ILP * Better add implementation. * More tweaks. ARM is really sensitive to exactly how these shifts are done. * More performance portable implementation of add. * Put signs back * Add comment. 06 May 2021, 20:00:46 UTC
42b5f79 Optimize fully connected when there are more than 4 batches (#5969) * Optimize fully connected when there are more than 4 batches * Fix crazy working typo * Do batches inside channels. * Fix missed constant 06 May 2021, 19:54:35 UTC
2ebaedd Don't add Halide DLL to PATH on Windows. (#5973) This conflicts with vcpkg's own binary copying on Windows and makes cross compiling more difficult. It also runs into issues with excessively long commands when the user's PATH variable is very long. 06 May 2021, 17:06:32 UTC
ed989db Remove some more old codegen workarounds and cleanups (#5932) * Remove old codegen workarounds * Pre-AVX2 codegen still needs this :( * trigger buildbots Co-authored-by: Steven Johnson <srj@google.com> 06 May 2021, 16:52:19 UTC
813180b HalideBuffer should use D=max_rank instead of D=4 (#5971) This prevents mallocs for some degenerate cases where we need buffers with > 4 dimensions. 06 May 2021, 16:38:22 UTC
ab3670d Clean up CMake helpers. 1. Add HEADER output to add_halide_library. 2. Use $<BUILD_INTERFACE:...> in generated target include paths. 3. Clean up logic (reduce nesting). 4. Use lower-case names for local variables. 5. Print paths to detected Clang and LLD config scripts. 6. Honor normal variable overrides for Halide_TARGET. 06 May 2021, 05:52:34 UTC
0b77168 Consistently use Halide_* prefixes in CMake. 06 May 2021, 05:52:34 UTC
0c0b117 Upgrade hannk's TFLite version to 2.5.0-rc3 (#5970) * Upgrade hannk's TFLite version to 2.5.0-rc3 * Drive-by cleanup of test names 05 May 2021, 23:41:34 UTC
438ddf8 Optimize depthwise convolution (#5964) * Try factoring depthwise reduction. * Revert unnecessary change. Co-authored-by: Steven Johnson <srj@google.com> 05 May 2021, 23:39:44 UTC
93dad62 Fix tutorial 15 test (#5966) 05 May 2021, 20:23:56 UTC
4a489e6 Ensure our local flatbuffers.h is included in preference to system variants (#5962) * Ensure our local flatbuffers.h is included before system variants The local version might be too old for TFLite * Update CMakeLists.txt * Update CMakeLists.txt * Silence the noise noise noise noise NOISE * fix policy 05 May 2021, 19:55:01 UTC
95047ca Optimize pooling ops (#5963) * Avoid padding for pool ops. * Use reciprocal to implement division. 05 May 2021, 16:55:59 UTC
115e597 Fix FetchContent for hannk (#5960) Apparently using SOURCE_SUBDIR + FetchContent_MakeAvailable() doesn't work on the buildbots. This is equivalent and does work. ¯\_(ツ)_/¯ 05 May 2021, 01:28:21 UTC
675748a Add apps/hannk to apps/CMakeLists.txt (#5958) ...but with an option for disabling it, for the buildbots 05 May 2021, 00:02:02 UTC
abefa3c Remove nn_ops app in favor of hannk app. (#5893) 04 May 2021, 23:45:21 UTC
7b79dca Add HANNK app (#5891) * More accurate approx_log2/exp2. * Add tests from inception_v4 * Improve precision of log2/exp2 related functions. * Add tanh and clean up generators. * Add version-checking to compare_vs_tflite and issue a warning if major and minor versions mismatch * Restore inadvertent @ removal * Add build_hannk/test_hannk targets to Makefile, to make specialized testing on select buildbots easier for now * More hacky padding for depthwise. * Add TODO * trigger buildbots * Add mean op, enable resnet50 to work. * Fix build failure on ARM. * Grammar * Remove stale TODO. * Make tensors shared_ptr. * Fuse double paddings. * Reduce padding for ARM. * Enable DimMap to express alignment. * Remove crops from execute. * Model -> OpGroup refactor. * Add DimMap::align. * Add proper alignment to DimMap. * Recursively transform. * Use cubic polynomials to approximate log2 and exp2. * Add --use_hannk option * Add mul op support. * Add TODO * Add disambiguating parens * Fix boneheaded broadcasting bug. * Less aggressive broadcasting. * Inline basic arithmetic. * Remove unnecessary using directives. * Fix stray unique_ptr<Tensor> * Implement space to depth and depth to space. * Enable scalar boolean comparison ops. * Support ReLUx as unary ops. * CHECK(false) -> LOG(FATAL) * Naming consistency. * More precise mul * Add some easy ops (NEG and SQUARE) * Fix asserts. * Don't segfault if interpreter can't be created * Add comment. * Remove dead file. * Fix excessive precision in softmax. * Lazy-init seeds in compare_vs_tflite, in case use_hannk=0 * Add TODO * Remove scalpel left in patient * Update model.h * Allow broadcasting of c of input 2 * Remove now-pointless specialization helper. * Put the common case specialization first. * Move pooling ops to the same generator file. * Fix softmax correctness issues * Don't benchmark when testing. * Rearrange input parameters. * Remove multiply_quantized helper. * kTfLiteError -> kTfLiteDelegateError * Remove unnecessary check for log2(0) * Fix details of ReshapeOp to match tflite's impl * Add Shape op. * Generically handle elementwise operations of any rank. * Some of these aren't elementwise. * Minor cleanups * Minor cleanup in ReshapeOp::execute() * Remove unused functions * Add Greater, GreaterEqual to delegate * clang-format * Update normalizations_generator.cpp * Avoid horrific clang-format suggestion. * clang-format * Fix common_halide test. * Fix typo. * Fix asserts. * clang-format * Save compare_vs_tflite outputs from first run (not post-benchmark) * Enable approx_exp2 for int16 results without overflow. * Clean up precision of transcendentals * Fix accidental widening of shift by a constant. * Move elementwise generators to the same file. * Report profiler after each test * Optimize fully connected a lot * Add elementwise program interpreter * Add elementwise program interpreter * clang-format * WIP LSTM * Fix Interpreter::inputs and outputs. * Fix some precision and scheduling issues of LSTM * Fix LSTM op * Fix build breakage. * Fix comments. * clang-format * Add wrapper for constructing elementwise programs. * clang-format * Use ElementwiseProgram to implement LstmElementwise * Compress programs and instructions by storing them in int16 and more CISC * Reduce verbose repetitive declarations. * Optimize constant zeros. * Use a named constant for the size of each instruction. * Remove unnecessary const instruction. * Optimize and clean up elementwise programs * Reduce overhead from H::R::B * More H::R::B overhead cleanup. * Add missing include. * Various fixes and improvements. * Add support for LSTM to the hannk delegate (#5943) * Add support for LSTM to the hannk delegate * clang-format * Add support for dynamic tensors to hannk (#5942) * Initial support for Dynamic Tensors in hannk * Update hannk_delegate.cpp * Fixes * Smarten Tensor::resize() * More H::R::B overhead cleanup * Refactor IsNodeSupported * Minor fixes * Fix member name style * Fix is_alias * Add is_no_op for some ops * Log reasons for node rejection if verbosity >= 1 * clang-format * Fix Concat handling for delegate * Properly parse split op * Add SPLIT_V * Fix regression in PadForOps * Add asserts * Revise ReshapeOp to just use a shape tensor * Update ops.cpp * clang-format * Scale tolerance with the data type. * Compress disassembly a bit * Fix bug with aliasing. * Add --use_tflite flag to compare_vs_tflite Allows disabling the reference run, for running just our delegate alone * Clean up hannk makefile * Regularize all of hannk's own include paths to be relative to apps/hannk; this simplifies things and will allow removing some hacks in Blaze/Bazel and also the upcoming CMake support * Remove some gratuitous uses of std::vector. * Remove unused function. * Remove more instances of std::vector * More SmallVector usage. * Avoid vector in can_use_elementwise_program. * Minor drive by fixes. * Remove some more H::R::B copies * Add broadcast support to elementwise programs * Also tweak the generated schema file include path * clang-format * clang-format * Stale TODO * Upgrade hannk to tf2.5 + more (#5948) * Upgrade hannk to tf2.5 + more - upgrade default TFLite to 2.5.0-rc2 - Revise build instructions & assumptions for TFlite (use CMake for it now instead of Bazel) - Revised Android build instructions (now assumes that tflite is built locally rather than pulled from a prebuilt) - Remove the need for flatc/flatbuffers - Minor fixes to the run-on-device scripts * Update Makefile * Update Makefile * Fix some harmless errors related to input slots * TFlite is too sloppy with dimensions. * Intervals are min, max, not min, extent. * Refactor compare_vs_tflite Lots of internal code motion to clean things up and prepare for adding an internal-delegate code path. Immediate change is just `--enable [h][t][x]` instead of the old "use" flags, and reducing the default max-num-of-diffs to 8 instead of 32. * Add an alias for OpPtr * Don't alias inputs that might be used elsewhere. * Use the right tensors when parsing. * Don't schedule sum_filter separately, and avoid 8-bit multiplies for x86 * Improve aliasing logic * Small optimizations. * Add no_bounds_query to elementwise pipelines. * Clean up std:;shared_ptr/H::R::B overhead. * More cvt refactoring, plus clang-format * Fix asserts. * Remove unused trace_ member * Remove unnecessary argument. * Fix x86 * Update compare_vs_tflite.cpp * Add internal-delegate option to CVT * Fix run_compare_on_device for recent changes * Revert possibly broken space to depth optimization. * Add gather and more binary op support. * Update compare_vs_tflite.cpp * Default external-delegate to disabled * clang-format * Better implementation of SpaceToDepth/DepthToSpace. * clang-format * Reduce buffer copy overhead. * Remove unnecessary types. * Consistent multiplication order. * Pad to at least FnRank * clang-format * De-inline two operator<<()'s * compare_vs_tflite error handling - If any of the comparisons fail, exit with a nonzero error code - add `--tolerance` flag to allow tweaking allowable tolerance on a per-pipeline basis * Add CMake build rules to apps/hannk (#5955) * Add CMake build rules to hannk * Update ops.cpp * Fix features * Update CMakeLists.txt * Add tests * Fix cmake issues * Use CMAKE_GENERATOR * Update configure_cmake.sh * Delegate Fixes * Update flag handling in compare_vs_tflite This is gratuitous but was bugging me: - Flags now understand both `--flag value` or `--flag=value` - Unknown flags now fail hard instead of being ignored Co-authored-by: Steven Johnson <srj@google.com> 04 May 2021, 23:44:53 UTC
f45d323 Non-widening lowering of rounding shifts (#5956) This version lowers it without needing to widen, which is a large win on x86 for 16 and 32-bit types (3.8x faster and 2.8x faster respectively). It's a very slight slowdown for 8-bit because x86 doesn't have 8-bit shift instructions. Also drive-by typo fix. 04 May 2021, 16:32:56 UTC
94c0eca Use dot products for sums. (#5954) 04 May 2021, 00:17:39 UTC
5a0d1e5 Support VectorReduce in CodeGen_C (#5952) 03 May 2021, 16:34:37 UTC
8b9deea Fix bugs when D != 4 (#5951) * Fix bugs when D != 4 * clang-format 30 April 2021, 20:56:30 UTC
093e8df Replace llvm::sys::fs::F_None with llvm::sys::fs::OF_None (#5946) The former is deprecated. 29 April 2021, 22:58:43 UTC
fcbd2ee Fix build issue in runtime. (#5944) 27 April 2021, 23:52:57 UTC
a391e9a adding a note in the README.md to use -j option in make --build (#5938) * adding a note in the README.md to use -j option in make --build * wrapped the added section to 80 column 27 April 2021, 23:13:06 UTC
back to top