1. 17 Sep, 2021 1 commit
    • Umang Yadav's avatar
      Remove alpha and beta attributes from dot operator (#945) · 9e43cb8b
      Umang Yadav authored
      This PR aims to remove alpha and beta attributes from dot operator completely.
      
      Previously dot operator was defined as C = alpha * A . B + beta * C where * is scalar multiplication and . is dot product or matrix multiplication depending on dimension of the inputs.
      
      Aim is to have the definition of dot operator as C = A . B without having alpha or beta.
      
      In order to achieve the same effect as alpha and beta (1) it multiplies the one of the inputs to the dot operator with alpha value. (2) if beta is present then, multiplies the C with beta and then adds into the output from step 1.
      9e43cb8b
  2. 16 Sep, 2021 1 commit
    • Shucai Xiao's avatar
      Loop operator (#853) · a275f590
      Shucai Xiao authored
      
      
      Add Loop operator for opset version 13.
      Notes: 1) Default max iteration number is 10 if no max iteration number is provided
      2) To change the max iter number, a user can set the max_loop_iterations in the onnx_option struct when parsing a model.
      3) The returned shape of the scan output is from the max_loop_iterations even the actual loop num is less than that. This issue also applies to other operators like NonZero and NonMaxSuppression. A issue #948 is created to track this and to be resolved later.
      Co-authored-by: default avatarPaul <pfultz2@yahoo.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      a275f590
  3. 31 Aug, 2021 1 commit
    • kahmed10's avatar
      Changes to support both OneDNN and ZenDNN builds (#929) · 0859fe90
      kahmed10 authored
      
      
      * Add preallocate method
      
      * Add preallocate_param pass
      
      * Preallocate buffers on the cpu
      
      * Formatting
      
      * Preallocate on the gpu
      
      * Add missing cpp file
      
      * Formatting
      
      * Add lifetime function
      
      * Formatting
      
      * Improve handling of exceptions in test driver
      
      * Formatting
      
      * Auto print exception
      
      * Formatting
      
      * Fork each test case
      
      * Formatting
      
      * Exclude gcc 5 debug build
      
      * Fix tidy issues
      
      * Add color
      
      * Formatting
      
      * Create driver class
      
      * Formatting
      
      * Customize test_case names
      
      * Formatting
      
      * Report status from forked processes
      
      * Formatting
      
      * Update the verify driver
      
      * Formatting
      
      * Print out failed tests
      
      * Formatting
      
      * Fix tidy issues
      
      * Formatting
      
      * Expect passing
      
      * Improve failure reporting on non-linux systems
      
      * Fix ifdef
      
      * Always allocate
      
      * Fix tidy warning
      
      * Flush code code cov
      
      * Formatting
      
      * Fix tidy
      
      * Add const
      
      * Check if weak symbols is linked
      
      * Formatting
      
      * initial progress
      
      * formatting
      
      * Add continue flag
      
      * Formatting
      
      * Set exe name
      
      * Use stringstream and use quotes
      
      * rename vars
      
      * formatting
      
      * more testing
      
      * formatting
      
      * Fix bug when using --continue in the tests
      
      * Formatting
      
      * revert gemm
      
      * revert dot file
      
      * rename var
      
      * update cmakelists and deconv compute
      Co-authored-by: default avatarPaul <pfultz2@yahoo.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      0859fe90
  4. 09 Jun, 2021 1 commit
    • kahmed10's avatar
      Asym pad refactor (#791) · 9a5e0c06
      kahmed10 authored
      
      
      * alternative impl
      
      * formatting
      
      * add gpu pass to insert pad
      
      * formatting
      
      * update onnx test, still need cleanup
      
      * formatting
      
      * update tf_test
      
      * modify existing tests
      
      * formatting
      
      * remove print
      
      * code cleanup
      
      * formatting
      
      * code cleanup
      
      * formatting
      
      * fix tidy and cppcheck
      
      * remove variable
      
      * add test
      
      * formatting
      
      * add test and address comments
      
      * formatting
      Co-authored-by: default avatarShucai Xiao <shucai@gmail.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      9a5e0c06
  5. 05 Apr, 2021 1 commit
    • Shucai Xiao's avatar
      Module build exec (#765) · 41c0487b
      Shucai Xiao authored
      
      
      * code cleanup
      
      * clang format
      
      * backup code
      
      * clang format
      
      * remove unnecessary code
      
      * clang format
      
      * add module print function
      
      * code backup
      
      * refine the module::print function
      
      * refine the module:to_value() function
      
      * code backup
      
      * backup code changes
      
      * code backup
      
      * remove to_value and from_value function from the module class
      
      * rename a function
      
      * rename the if operator
      
      * refine the if operator
      
      * refine the print function of module and program
      
      * code backup
      
      * code backup
      
      * fix a build warning
      
      * fix overload of compute_shape function
      
      * code backup
      
      * fix unit test error
      
      * fix cppcheck error
      
      * fix the issue related to the overload of compute_shape
      
      * fix review comments
      
      * fix cppcheck error
      
      * change the return name of if_op to be if
      
      * clang format
      
      * fix two unit tests
      
      * clang format
      
      * rename variables
      
      * clang format
      
      * remove the unused compute_op function
      
      * clang format
      
      * add lowering of if operator and compute_op function
      
      * clang format
      
      * add parsing if operator in onnx file
      
      * clang format
      
      * fix clang tidy format
      
      * clang format
      
      * add the gpu implementation of the if operator
      
      * enhance the validate function and uncomment a unit test
      
      * clang format
      
      * remove unnecessary code
      
      * add sub_module processing in ref passes
      
      * clang format
      
      * clang format
      
      * fix a hang issue related to the valid function
      
      * fix an issue in replace_refs
      
      * clang format
      
      * fix review comments
      
      * clang format
      
      * fix cppcheck error
      
      * clang format
      
      * add a unit test for more code coverage
      
      * clang format
      
      * fix review comments and add test for more code coverage
      
      * clang format
      
      * fix cppcheck error
      
      * clang format
      
      * fix cppcheck error
      
      * fix a cppcheck error
      
      * clang format
      
      * backup code
      
      * clang format
      
      * fix cppcheck error
      
      * clang format
      
      * some code refinement
      
      * clang format
      
      * code backup to handle submodules in module compilation
      
      * clang format
      
      * code backup
      
      * clang format
      
      * code backup
      
      * clang format
      
      * fix a bug related to literal id
      
      * fix a bug in gpu execution
      
      * change the way of compiling a graph
      
      * clang format
      
      * backup more changes
      
      * clang format
      
      * refine pass log information
      
      * remove unnecessary code
      
      * clang format
      
      * temp changes backup
      
      * clang format
      
      * add module name prefix to scratch memory id in hip_memory_allocation
      
      * clang format
      
      * change to copy the cond input by inserting a copy instruction
      
      * clang format
      
      * change to use the if output argument as the submodule output so can remove a gpu_copy
      
      * clang format
      
      * consider submodule in some compile passes
      
      * clang format
      
      * fix review comments
      
      * clang format
      
      * fix issues related to scratch memory
      
      * clang format
      
      * remove unnecessary code
      
      * fix cppcheck error
      
      * clang format
      
      * reslove the implicit dependencies issue related to submodule
      
      * clang format
      
      * fix cppcheck error
      
      * clang format
      
      * backup temp changes
      
      * clang format
      
      * fixed an bug in the has_instruction function
      
      * clang format
      
      * fix the return value of the gpu implementation of the if operator
      
      * fix a bug in the compute_shape function in the gpu implementation
      
      * add an if onnx unit test
      
      * clang format
      
      * add more unit tests
      
      * clang format
      
      * tmp code backup
      
      * clang format
      
      * fix a sync problem related to copy cond argument from gpu to cpu
      
      * clang format
      
      * change the compile offload copy flag setting
      
      * clang format
      
      * enable copy from cpu to be able to do synchronous copy
      
      * clang format
      
      * add more unit tests
      
      * add more unit tests
      
      * add more ref unit tests
      
      * clang format
      
      * fixed a bug error
      
      * tmp code backup
      
      * clang format
      
      * fixed an onnx verify unit test
      
      * add more unit tests
      
      * clang format
      
      * reverse a change
      
      * fix cppcheck error
      
      * fix cppcheck error
      
      * fix to print all instructions in program execution
      
      * clang format
      
      * fix bugs related to memory coloring and offload copy to be true
      
      * clang format
      
      * remove unnecessary include header file
      
      * sort test cases in ref_cpu_ops alphabetically
      
      * clang format
      
      * add a flag to disable cpu target in verification test
      
      * change the way to disable some tests
      
      * clang format
      
      * disable verify unit test of the if operators
      
      * add a function call to have more code coverage
      
      * fix a build error
      
      * fix review comments
      
      * fix review comments
      
      * clang format
      
      * add a api gpu unit test for more code coverage
      
      * clang format
      
      * change to use instruction.size() as node index
      
      * move the calc_implicit_deps function to module class as a member function
      
      * clang format
      
      * move the offload_copy flag setting to lowering
      
      * clang format
      
      * assign the module_eval lambda function to a variable to simplify code
      
      * clang format
      
      * move the compute function from ref/gpu implementation to the main if operator
      
      * clang format
      
      * fix cpp check error
      
      * add a unit test for more code coverage
      
      * clang format
      
      * add unit test to calculate implicit deps
      
      * add a python unit test
      
      * clang format
      
      * refine a unit test to have more code coverage
      
      * clang format
      
      * chang the way of wrap up arguments for sub modules
      
      * clang format
      
      * fix some build errors
      
      * code cleanup
      
      * refine unit tests to have more code coverage
      
      * clang format
      
      * refine unit test to have more code coverage
      
      * code backup
      
      * clang format
      
      * add memory coloring test
      
      * refine memory coloring unit test
      
      * clang format
      
      * remove an unnecessary line
      
      * remove an unused line
      
      * remove an unnecessary parameter in the lambda function
      
      * clang format
      
      * refine a unit test
      
      * remove an unnecessary line
      
      * refine unit tests to have more code coverage
      
      * clang format
      
      * combine two lines
      
      * add one more unit test for more code coverage
      
      * clang format
      
      * add one more unit test
      
      * clang format
      
      * fix review comments
      
      * refine a print out information
      
      * fix review comments
      
      * clang format
      
      * change the sync copy to using a gpu device sync
      
      * clang format
      
      * remove unnecessary code
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      41c0487b
  6. 08 Feb, 2021 1 commit
    • Paul Fultz II's avatar
      Add a pass to remove unsupported data types (#738) · 3d24a21c
      Paul Fultz II authored
      
      
      * Add eliminate_data_type pass
      
      * Formatting
      
      * Auto convert quant ops
      
      * Formatting
      
      * Flip the order of decompose
      
      * Compute max size differently
      
      * Formatting
      
      * Clamp values in convert
      
      * Formatting
      
      * Fix loss of precision in reduce
      
      * Formatting
      
      * Fix bugs in reduction
      
      * Fix accumulator type in reference softmax implementation
      
      * Formatting
      
      * Update convert test
      
      * Remove unused variables
      
      * Remove unnecessary quant_dot check
      
      * Formatting
      
      * Add tests
      
      * Formatting
      
      * Remove unused code
      
      * Remove duplicate ops
      
      * Remove blaze dependency
      
      * Use set since shape::type_t is no hashable on gcc 5
      
      * Formatting
      Co-authored-by: default avatarShucai Xiao <shucai@gmail.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      3d24a21c
  7. 18 Jan, 2021 1 commit
    • kahmed10's avatar
      Refactor to use tune_axis function (#713) · 651ea160
      kahmed10 authored
      * initial testing
      
      * initial testing
      
      * add dequantize
      
      * formatting
      
      * add tests
      
      * formatting
      
      * revert file
      
      * add parse files
      
      * formatting
      
      * add axis tuning and fix tests
      
      * formatting
      
      * add tests and fix int8
      
      * formatting
      
      * fix tidy
      
      * test with int32
      
      * add default name and change string to upper
      
      * formatting
      
      * remove boost call
      
      * refactor to use tune_axis)
      
      * formatting
      651ea160
  8. 14 Dec, 2020 1 commit
    • Paul Fultz II's avatar
      Use dnnl for cpu backend (#688) · 406afeb8
      Paul Fultz II authored
      
      
      * Add flag to enable cpu backend
      
      * Make buffers shared
      
      * Enable optimizations
      
      * Add onednn
      
      * Formatting
      
      * Formatting
      
      * Add dnnl header
      
      * Formatting
      
      * Rewrite rnn first
      
      * Formatting
      
      * Call reference implementation
      
      * Formatting
      
      * Make literal data shared
      
      * Formatting
      
      * Add convolution
      
      * Formatting
      
      * Compensate for dilation
      
      * Formatting
      
      * Use name/make_op instead
      
      * Formatting
      
      * Rename gemm header
      
      * Formatting
      
      * Add dnnl convolution/gemm operators
      
      * Formatting
      
      * Add eliminate_contiguous
      
      * Add faster pointwise operators
      
      * Formatting
      
      * Formatting
      
      * Formatting
      
      * Add dnnl op class
      
      * Formatting
      
      * Add add op
      
      * Formatting
      
      * Add concat operator
      
      * Formatting
      
      * Add more ops
      
      * Create descriptor during finalization
      
      * Formatting
      
      * Dont rewrite pooling
      
      * Enable memory coloring
      
      * Formatting
      
      * Add output aliases
      
      * Formatting
      
      * Fix errors
      
      * Formatting
      
      * Convert literals
      
      * Add missing file
      
      * Remove batch_norm
      
      * Formatting
      
      * Use strides
      
      * Formatting
      
      * Add some debug checks
      
      * Formatting
      
      * Fix big in adjusting shape for gemm
      
      * Formatting
      
      * Fix fallback dot operator
      
      * Zero initialize buffers
      
      * Add suport for group convolutions
      
      * Formatting
      
      * Make adjust allocation target independent
      
      * Formatting
      
      * Enable adjust_allocation for gpu/cpu
      
      * Formatting
      
      * Add copy to allocation model
      
      * Formatting
      
      * Add copy operator
      
      * Formatting
      
      * Better handling of output parameters in adjust_allocation
      
      * Formatting
      
      * Build with dnnl
      
      * Make dnnl required
      
      * Fix compile error
      
      * Tidy fixes
      
      * Formatting
      
      * Tidy fixes
      
      * Formatting
      
      * Fix more tidy issues
      
      * Formatting
      
      * Add mul op
      
      * Add mul op
      
      * Set c compiler to clang as well
      
      * Compensate for normalized compute shape
      
      * Formatting
      
      * Fix cppcheck errors
      
      * Formatting
      
      * Add onednn library to hcc
      
      * Guard clang pragmas
      
      * Disable cpu mode for gcc for now
      
      * Leave it enabled it for gcc 7
      
      * Fix cppcheck suppresion
      
      * Fix compile error on gcc 5
      
      * Remove unused code
      Co-authored-by: default avatarShucai Xiao <shucai.xiao@amd.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      406afeb8
  9. 16 Nov, 2020 1 commit
    • Shucai Xiao's avatar
      Normalize ops (#667) · 8443ecd1
      Shucai Xiao authored
      
      
      * add a pass to normalize ops
      
      * clang format
      
      * add unit tests
      
      * clang format
      
      * code backup
      
      * clang format
      
      * code backup
      
      * clang format
      
      * add support for slice in the normalize_op function
      
      * clang format
      
      * add operation method api for whether we need to call normalize_op
      
      * clang format
      
      * fix review comments
      
      * clang format
      
      * rename a function namejJ
      
      * clang format
      
      * change compute_shape to normalize_compute_shape for corresponding operators
      
      * clang format
      
      * remove unnecessary code
      
      * fix various issues
      
      * clang format
      
      * add attributes to operators having axis attributes
      
      * clang format
      
      * fixed jenkins build error
      
      * clang format
      
      * fix a bug related to slice
      
      * clang format
      
      * code backup
      
      * clang format
      
      * code backup
      
      * clang format
      
      * rename a file
      
      * fix cppcheck error
      
      * some code refinement
      
      * clang format
      
      * change attributes to enum
      
      * clang format
      
      * refine the enum
      
      * clang format
      
      * remove unnecessary code
      
      * add unit tests for more code coverage and fixed a bug
      
      * clang format
      
      * remove unnecessary changes
      
      * change normalize_axes to normalize
      
      * clang format
      
      * revert back the changes in broadcast.hpp
      
      * rename normalize_axes to normalize
      
      * fix review comments
      
      * clang format
      
      * Add flag to enable cpu backend
      
      * Make buffers shared
      
      * Enable optimizations
      
      * Formatting
      
      * Try to avoid ambiguous assign in value class
      
      * fixed a build error
      
      * clang format
      
      * add the normalize_ops pass to the ref target
      
      * refactor program to module to normalize_ops pass
      Co-authored-by: default avatarPaul <pfultz2@yahoo.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      8443ecd1
  10. 11 Nov, 2020 1 commit
  11. 04 Nov, 2020 1 commit
    • Paul Fultz II's avatar
      Split cpu and reference implementation (#671) · 500d9441
      Paul Fultz II authored
      
      
      * Add all_targets cmake target
      
      * Rename target
      
      * Add ref target
      
      * Rename tests
      
      * Refactor compiler target
      
      * Formatting
      
      * Verify for every target
      
      * Formatting
      
      * Add verify test suite
      
      * Formatting
      
      * Add initial test programs
      
      * Formatting
      
      * Add rnn tests
      
      * Formatting
      
      * Validate gpu
      
      * Formatting
      
      * Remove old gpu tests
      
      * Fix gpu tests
      
      * Fix ref error
      
      * Fix tidy issues
      
      * Formatting
      
      * Tidy fixes
      
      * Fix header in python api
      
      * Rename to ref
      
      * Use ref in verify_onnx
      
      * Fix tidy issue
      
      * Build with verbose on
      
      * Fix typo
      
      * Remove verbose
      
      * rename some cpu prefix to ref
      Co-authored-by: default avatarShucai Xiao <Shucai.Xiao@amd.com>
      500d9441