inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/permute/permute_kernel_tile_8x8_4x4_fsv.cpp
// Validate is the same as permute_kernel_tile_8x8_4x4
Validate is the same as permute_kernel_tile_8x8_4x4
Validate is the same as permute_kernel_tile_8x8_4x4
bool PermuteKernel_tile_8x8_4x4_fsv::Validate(const Params& p, const optional_params& o) const {
    if (!Parent::Validate(p, o)) return false;
    std::function<bool(const std::vector<uint16_t>&)> is_rotating_except_batch = [](const std::vector<uint16_t>& order) {
        if ((int32_t) order[1] != order.size() - 1) return false;
        if ((int32_t) order[0] != 0) return false;
        for (int32_t i = 2; i < (int32_t) order.size(); ++i) {
            if ((int32_t)order[i] !=  (i - 1)) return false;
        }
        return true;
    };
    const permute_params& params = static_cast<const permute_params&>(p);
    if (params.inputs[0].GetDims().size() != params.output.GetDims().size()) {
        return false;
    }
    if (!is_rotating_except_batch(params.order)) {
        return false;
    }
    return true;
}
bool PermuteKernel_tile_8x8_4x4_fsv :: Validate ( const Params & p , const optional_params & o ) const { if ( ! Parent :: Validate ( p , o ) ) return false ; std :: function < bool ( const std :: vector < uint16_t > & ) > is_rotating_except_batch = [ ] ( const std :: vector < uint16_t > & order ) { if ( ( int32_t ) order [ 1 ] != order . size ( ) - 1 ) return false ; if ( ( int32_t ) order [ 0 ] != 0 ) return false ; for ( int32_t i = 2 ; i < ( int32_t ) order . size ( ) ; ++ i ) { if ( ( int32_t ) order [ i ] != ( i - 1 ) ) return false ; } return true ; } ; const permute_params & params = static_cast < const permute_params & > ( p ) ; if ( params . inputs [ 0 ] . GetDims ( ) . size ( ) != params . output . GetDims ( ) . size ( ) ) { return false ; } if ( ! is_rotating_except_batch ( params . order ) ) { return false ; } return true ; }
Validate is the same as permute_kernel_tile_8x8_4x4
Validate is the same as permute_kernel_tile_8x8_4x4
// Target transform: Rotate feature dim to back to be taken as inner-most axis // ex) 0(b), 4(f), 1(z), 2(y), 3(x) // ex) 0(b), 3(f), 1(y), 2(x)