def Main(): emitter = cc_emitter.CCEmitter() emitter.EmitCodeNoSemicolon(_HEADER_COPYRIGHT) emitter.EmitHeaderBegin('gemmlowp_meta_single_thread_gemm') emitter.EmitPreprocessor1('ifdef', 'GEMMLOWP_NEON_32') emitter.EmitNewline() emitter.EmitInclude('<cassert>') emitter.EmitNewline() emitter.EmitNamespaceBegin('gemmlowp') emitter.EmitNamespaceBegin('meta') emitter.EmitNamespaceBegin('internal') emitter.EmitNewline() zip_Nx8_neon.GenerateFunctions(neon_emitter.NeonEmitter()) emitter.EmitNewline() mul_Nx8_Mx8_neon.GenerateFunctions(neon_emitter.NeonEmitter()) emitter.EmitNewline() qnt_Nx8_neon.GenerateFunctions(neon_emitter.NeonEmitter()) emitter.EmitNewline() GenerateFunctions(emitter) emitter.EmitNewline() emitter.EmitNamespaceEnd() emitter.EmitNewline() GenerateMainGemmFunction(emitter) emitter.EmitNewline() GenerateWrapperGemmFunctions(emitter) emitter.EmitNewline() emitter.EmitNamespaceEnd() emitter.EmitNamespaceEnd() emitter.EmitNewline() emitter.EmitPreprocessor('else') emitter.EmitPreprocessor1( 'warning', '"Meta gemm fast-path requires GEMMLOWP_NEON_32!"') emitter.EmitPreprocessor('endif') emitter.EmitNewline() emitter.EmitHeaderEnd()
def Main(): """.""" cc = cc_emitter.CCEmitter() common.GenerateHeader(cc, 'gemmlowp_meta_streams_arm_64', 'GEMMLOWP_NEON_64') cc.EmitNamespaceBegin('gemmlowp') cc.EmitNamespaceBegin('meta') cc.EmitNewline() streams_common.GenerateUInt8x8Streams(cc, neon_emitter_64.NeonEmitter64(), 8) cc.EmitNamespaceEnd() cc.EmitNamespaceEnd() cc.EmitNewline() common.GenerateFooter(cc, 'Meta gemm for arm64 requires: GEMMLOWP_NEON_64!')
def Main(): """Generate the single threaded meta gemm library.""" emitter = cc_emitter.CCEmitter() emitter.EmitCodeNoSemicolon(_HEADER_COPYRIGHT) emitter.EmitHeaderBegin('gemmlowp_meta_single_thread_gemm') emitter.EmitPreprocessor1('ifdef', 'GEMMLOWP_NEON_32') emitter.EmitNewline() emitter.EmitInclude('<cassert>') emitter.EmitNewline() emitter.EmitNamespaceBegin('gemmlowp') emitter.EmitNamespaceBegin('meta') emitter.EmitNamespaceBegin('internal') emitter.EmitNewline() GenerateInternalFunctions(emitter) emitter.EmitNamespaceEnd() emitter.EmitNewline() GenerateMainGemmFunction(emitter, _QUANTIZED_8BIT) emitter.EmitNewline() GenerateMainGemmFunction(emitter, _FULL_32BIT) emitter.EmitNewline() GenerateMainGemmFunction(emitter, _FULL_FLOAT) emitter.EmitNewline() GenerateWrapperGemmFunction(emitter, _QUANTIZED_8BIT) emitter.EmitNewline() GenerateWrapperGemmFunction(emitter, _FULL_32BIT) emitter.EmitNewline() GenerateWrapperGemmFunction(emitter, _FULL_FLOAT) emitter.EmitNewline() emitter.EmitNamespaceEnd() emitter.EmitNamespaceEnd() emitter.EmitNewline() emitter.EmitPreprocessor('else') emitter.EmitPreprocessor1('warning', '"Meta gemm fast-path requires GEMMLOWP_NEON_32!"') emitter.EmitPreprocessor('endif') emitter.EmitNewline() emitter.EmitHeaderEnd()
def Main(): """.""" cc = cc_emitter.CCEmitter() common.GenerateHeader(cc, 'gemmlowp_meta_transform_kernels_arm_32', 'GEMMLOWP_NEON_32') cc.EmitNamespaceBegin('gemmlowp') cc.EmitNamespaceBegin('meta') cc.EmitNewline() transform_kernels_common.GenerateKernels(cc, neon_emitter.NeonEmitter(), [(16, x) for x in range(16)]) cc.EmitNamespaceEnd() cc.EmitNamespaceEnd() cc.EmitNewline() common.GenerateFooter(cc, 'Meta gemm for arm32 requires: GEMMLOWP_NEON_32!')
def Main(): """Generate the single threaded meta gemm library.""" cc = cc_emitter.CCEmitter() meta_arm_common.GenerateHeader(cc, 'gemmlowp_meta_single_thread_gemm_arm32', 'GEMMLOWP_NEON_32') cc.EmitNamespaceBegin('gemmlowp') cc.EmitNamespaceBegin('meta') cc.EmitNamespaceBegin('internal') cc.EmitNewline() meta_arm_common.GenerateInternalFunctions(cc, neon_emitter.NeonEmitter()) cc.EmitNamespaceEnd() cc.EmitNamespaceEnd() cc.EmitNamespaceEnd() cc.EmitNewline() meta_arm_common.GenerateFooter( cc, 'Meta gemm for arm32 requires: GEMMLOWP_NEON_32!')
def Main(): """.""" cc = cc_emitter.CCEmitter() common.GenerateHeader(cc, 'gemmlowp_meta_quantized_mul_kernels_arm_64', 'GEMMLOWP_NEON_64') cc.EmitNamespaceBegin('gemmlowp') cc.EmitNamespaceBegin('meta') cc.EmitNewline() shapes = [(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3)] quantized_mul_kernels_common.GenerateKernels( cc, neon_emitter_64.NeonEmitter64(), shapes) cc.EmitNamespaceEnd() cc.EmitNamespaceEnd() cc.EmitNewline() common.GenerateFooter(cc, 'Meta gemm for arm64 requires: GEMMLOWP_NEON_64!')
def Main(): """Generate the single threaded meta gemm library.""" emitter = cc_emitter.CCEmitter() GenerateHeader(emitter) emitter.EmitNamespaceBegin('gemmlowp') emitter.EmitNamespaceBegin('meta') emitter.EmitNamespaceBegin('internal') emitter.EmitNewline() GenerateInternalFunctions(emitter) emitter.EmitNamespaceEnd() emitter.EmitNewline() GeneratePublicFunctions(emitter) emitter.EmitNamespaceEnd() emitter.EmitNamespaceEnd() emitter.EmitNewline() GenerateFooter(emitter)