• insoow's avatar
    Merge pull request #8104 from insoow:master · 2922738b
    insoow authored
    Gemm kernels for Intel GPU (#8104)
    
    * Fix an issue with Kernel object reset release when consecutive Kernel::run calls
    
    Kernel::run launch OCL gpu kernels and set a event callback function
    to decreate the ref count of UMat or remove UMat when the lauched workloads
    are completed. However, for some OCL kernels requires multiple call of
    Kernel::run function with some kernel parameter changes (e.g., input
    and output buffer offset) to get the final computation result.
    In the case, the current implementation requires unnecessary
    synchronization and cleanupMat.
    
    This fix requires the user to specify whether there will be more work or not.
    If there is no remaining computation, the Kernel::run will reset the
    kernel object
    Signed-off-by: 's avatarWoo, Insoo <insoo.woo@intel.com>
    
    * GEMM kernel optimization for Intel GEN
    
    The optimized kernels uses cl_intel_subgroups extension for better
    performance.
    
    Note: This optimized kernels will be part of ISAAC in a code generation
    way under MIT license.
    Signed-off-by: 's avatarWoo, Insoo <insoo.woo@intel.com>
    
    * Fix API compatibility error
    
    This patch fixes a OCV API compatibility error. The error was reported
    due to the interface changes of Kernel::run. To resolve the issue,
    An overloaded function of Kernel::run is added. It take a flag indicating
    whether there are more work to be done with the kernel object without
    releasing resources related to it.
    Signed-off-by: 's avatarWoo, Insoo <insoo.woo@intel.com>
    
    * Renaming intel_gpu_gemm.cpp to intel_gpu_gemm.inl.hpp
    Signed-off-by: 's avatarWoo, Insoo <insoo.woo@intel.com>
    
    * Revert "Fix API compatibility error"
    
    This reverts commit 2ef427db91b6c4aec170f691c5d2e6c47d6520d7.
    
    Conflicts:
    	modules/core/src/intel_gpu_gemm.inl.hpp
    
    * Revert "Fix an issue with Kernel object reset release when consecutive Kernel::run calls"
    
    This reverts commit cc7f9f54695dc293598addce9b9d7e345225bede.
    
    * Fix the case of uninitialization D
    
    When C is null and beta is non-zero, D is used without initialization.
    This resloves the issue
    Signed-off-by: 's avatarWoo, Insoo <insoo.woo@intel.com>
    
    * fix potential output error due to 0 * nan
    Signed-off-by: 's avatarWoo, Insoo <insoo.woo@intel.com>
    
    * whitespace fix, eliminate non-ASCII symbols
    
    * fix build warning
    2922738b
intel_gemm.cl 50.2 KB