Deprecate some old static solvers for new ASICs
-
[x] (1) Some old static solvers should be allowed only for the following targets:
- gfx900/906 (Vega10/20, MI50/60, Radeon VII etc)
- gfx908/90a (MI100, MI200)
- gfx103X (Navi 2X)
- ℹ️ Note that gfx110X (Navi 3X) is NOT included
- Env.var
MIOPEN_DEBUG_ENABLE_DEPRECATED_SOLVERScan be used to override, i.e. enable old static solvers for all targets. - ✔️ Implemented in #2081
-
(2) The list of solvers:
- ConvAsm1x1U
- ConvAsm1x1UV2
- ConvAsm3x3U
- ConvAsm5x10u2v2b1
- ConvAsm5x10u2v2f1
- ConvAsm7x7c3h224w224k64u2v2p3q3f1
- ConvAsmBwdWrW1x1
- ConvAsmBwdWrW3x3
- ConvCkIgemmFwdV6r1DlopsNchw
- ConvHipImplicitGemmBwdDataV1R1
- ConvHipImplicitGemmBwdDataV1R1Xdlops
- ConvHipImplicitGemmBwdDataV4R1
- ConvHipImplicitGemmBwdDataV4R1Xdlops
- ConvHipImplicitGemmForwardV4R4Xdlops
- ConvHipImplicitGemmForwardV4R4Xdlops_Padded_Gemm
- ConvHipImplicitGemmForwardV4R5Xdlops
- ConvHipImplicitGemmV4R1Fwd
- ConvHipImplicitGemmV4R4Fwd
- ConvHipImplicitGemmV4R4WrW
- ConvHipImplicitGemmWrwV4R4Xdlops
- ConvHipImplicitGemmWrwV4R4Xdlops_Padded_Gemm
- ConvOclBwdWrW1x1
- ConvOclBwdWrW2<N>
- ConvOclBwdWrW2NonTunable
- ConvOclBwdWrW53
- ConvOclDirectFwd
- ConvOclDirectFwd11x11
- ConvOclDirectFwd1x1
- ConvOclDirectFwdGen
-
[ ] (3) The solvers listed at (2) are to be removed when support for the targets listed at (1) is discontinued.
Some clarifications: https://github.com/ROCmSoftwarePlatform/MIOpen/pull/2072#discussion_r1159102468
[Attribution] @junliume @johnny-keker https://github.com/ROCmSoftwarePlatform/MIOpen/labels/specification https://github.com/ROCmSoftwarePlatform/MIOpen/labels/urgency_high
- Proposed assignees: @JehandadKhan @atamazov
[attribution] @JehandadKhan I think that this is https://github.com/ROCm/MIOpen/labels/urgency_low https://github.com/ROCm/MIOpen/labels/value_low. All that's left is to remove the solvers (which may only happen in the future)
@junliume @JehandadKhan @Kirpich30000 As shown at https://github.com/ROCm/MIOpen/issues/2492#issuecomment-1911121477, ConvOclBwdWrW2<*> deliver good performance (especially with grouped configs). Shall we consider excluding these from the list of deprecated solvers?
FYI quote from https://github.com/ROCm/MIOpen/issues/2492#issuecomment-1919952275:
Maybe it is worth enabling
ConvOclBwdWrW2<*>for the new GPUs to avoid inadequate performance of WrW convolutions, especially when n_groups > 1 (we can even enable them only for group convolutions).