Home
last modified time | relevance | path

Searched refs:gemmlowp (Results 1 – 25 of 140) sorted by relevance

123456

/external/tensorflow/tensorflow/core/kernels/
Dmeta_support.cc79 gemmlowp::WorkersPool* GetWorkersPool() { in GetWorkersPool()
80 static gemmlowp::WorkersPool* pool = new gemmlowp::WorkersPool(); in GetWorkersPool()
96 typedef gemmlowp::meta::SimpleContext<gemmlowp::WorkersPool> LocalContext;
101 gemmlowp::meta::MultiThreadGemm< in MultiThreadGemm()
102 Context, gemmlowp::meta::GemmExecutorPackLHSCacheFriendly<>, Params, 1, in MultiThreadGemm()
106 gemmlowp::meta::MultiThreadGemm< in MultiThreadGemm()
107 Context, gemmlowp::meta::GemmExecutorPackRHSCacheFriendly<>, Params, in MultiThreadGemm()
110 gemmlowp::meta::MultiThreadGemm< in MultiThreadGemm()
111 Context, gemmlowp::meta::GemmExecutorPackLHSCacheFriendly<>, Params, in MultiThreadGemm()
122 typedef gemmlowp::meta::GemmParams< in QuantizedGemmImpl()
[all …]
Dquantized_matmul_op.cc41 static const gemmlowp::MapOrder ResultOrder = in GemmlowpMultiply()
42 !TransposeC ? gemmlowp::MapOrder::RowMajor : gemmlowp::MapOrder::ColMajor; in GemmlowpMultiply()
43 static const gemmlowp::MapOrder LhsOrder = in GemmlowpMultiply()
44 !TransposeA ? gemmlowp::MapOrder::RowMajor : gemmlowp::MapOrder::ColMajor; in GemmlowpMultiply()
45 static const gemmlowp::MapOrder RhsOrder = in GemmlowpMultiply()
46 !TransposeB ? gemmlowp::MapOrder::RowMajor : gemmlowp::MapOrder::ColMajor; in GemmlowpMultiply()
47 gemmlowp::MatrixMap<const std::uint8_t, LhsOrder> lhs(a_data_as_uint8, m, k, in GemmlowpMultiply()
49 gemmlowp::MatrixMap<const std::uint8_t, RhsOrder> rhs(b_data_as_uint8, k, n, in GemmlowpMultiply()
51 gemmlowp::MatrixMap<std::int32_t, ResultOrder> result(c_data_as_int32, m, n, in GemmlowpMultiply()
58 gemmlowp::GemmWithOutputPipeline<std::uint8_t, std::int32_t, in GemmlowpMultiply()
[all …]
Dquantized_conv_ops.cc409 static const gemmlowp::MapOrder ResultOrder = in operator ()()
410 !transpose_c ? gemmlowp::MapOrder::RowMajor in operator ()()
411 : gemmlowp::MapOrder::ColMajor; in operator ()()
412 static const gemmlowp::MapOrder LhsOrder = in operator ()()
413 !transpose_a ? gemmlowp::MapOrder::RowMajor in operator ()()
414 : gemmlowp::MapOrder::ColMajor; in operator ()()
415 static const gemmlowp::MapOrder RhsOrder = in operator ()()
416 !transpose_b ? gemmlowp::MapOrder::RowMajor in operator ()()
417 : gemmlowp::MapOrder::ColMajor; in operator ()()
418 gemmlowp::MatrixMap<const std::uint8_t, LhsOrder> lhs( in operator ()()
[all …]
/external/tensorflow/tensorflow/lite/kernels/internal/
Dcommon.h92 using gemmlowp::RoundingDivideByPOT; in MultiplyByQuantizedMultiplierSmallerThanOneExp()
93 using gemmlowp::SaturatingRoundingDoublingHighMul; in MultiplyByQuantizedMultiplierSmallerThanOneExp()
100 using gemmlowp::SaturatingRoundingDoublingHighMul; in MultiplyByQuantizedMultiplierGreaterThanOne()
107 using gemmlowp::RoundingDivideByPOT; in MultiplyByQuantizedMultiplier()
108 using gemmlowp::SaturatingRoundingDoublingHighMul; in MultiplyByQuantizedMultiplier()
154 gemmlowp::FixedPoint<tRawType, tIntegerBits> SaturatingAddNonGemmlowp( in SaturatingAddNonGemmlowp()
155 gemmlowp::FixedPoint<tRawType, tIntegerBits> a, in SaturatingAddNonGemmlowp()
156 gemmlowp::FixedPoint<tRawType, tIntegerBits> b) { in SaturatingAddNonGemmlowp()
157 return gemmlowp::FixedPoint<tRawType, tIntegerBits>::FromRaw( in SaturatingAddNonGemmlowp()
190 gemmlowp::FixedPoint<tRawType, tIntegerBits> SaturatingSub( in SaturatingSub()
[all …]
/external/gemmlowp/doc/
Dquantization_example.cc26 template <typename tScalar, gemmlowp::MapOrder tOrder>
28 const gemmlowp::MatrixMap<tScalar, tOrder>& m) { in operator <<()
42 template <gemmlowp::MapOrder tOrder>
43 void FindMinMax(const gemmlowp::MatrixMap<float, tOrder>& m, float* min, in FindMinMax()
114 template <gemmlowp::MapOrder tLhsOrder, gemmlowp::MapOrder tRhsOrder,
115 gemmlowp::MapOrder tResultOrder>
117 const gemmlowp::MatrixMap<const float, tLhsOrder>& lhs, in FloatMatrixMultiplication()
118 const gemmlowp::MatrixMap<const float, tRhsOrder>& rhs, in FloatMatrixMultiplication()
119 gemmlowp::MatrixMap<float, tResultOrder>* result) { in FloatMatrixMultiplication()
153 template <typename tScalar, gemmlowp::MapOrder tOrder>
[all …]
Doutput.md1 # Output pipelines in gemmlowp
3 In gemmlowp, the "output pipeline" is the process that takes a final `int32`
20 and activation function. gemmlowp's output pipelines allow implementing that:
26 The gemmlowp entry point allowing to use an arbitrary output pipeline is
27 `GemmWithOutputPipeline` in [public/gemmlowp.h](../public/gemmlowp.h).
50 Separately, a self-contained example showing how to use gemmlowp to compute a
Dpublic.md3 gemmlowp's public interface is defined in
4 [public/gemmlowp.h](../public/gemmlowp.h).
46 gemmlowp::GemmWithOutputPipeline<std::uint8_t, std::uint8_t,
47 gemmlowp::DefaultL8R8BitDepthParams>(
63 non-deprecated valid value is `gemmlowp::DefaultL8R8BitDepthParams`. See
78 must be `gemmlowp::GemmContext`.
84 * `context`: The `gemmlowp::GemmContext` object holding state and resources to
85 be used for this gemmlowp call.
92 will be performed by gemmlowp for the destination buffer. See
108 gemmlowp supports arbitrary combinations of storage orders for the LHS, RHS and
[all …]
/external/tensorflow/tensorflow/contrib/cmake/external/
Dgemmlowp.cmake17 set(gemmlowp_URL https://github.com/google/gemmlowp/archive/38ebac7b059e84692f53e5938f97a9943c120d9…
19 set(gemmlowp_BUILD ${CMAKE_CURRENT_BINARY_DIR}/gemmlowp/src/gemmlowp)
20 set(gemmlowp_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gemmlowp/src/gemmlowp)
22 ExternalProject_Add(gemmlowp
23 PREFIX gemmlowp
28 …CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/patches/gemmlowp/CMakeLists.txt ${…
/external/tensorflow/tensorflow/contrib/lite/kernels/internal/optimized/
Doptimized_ops.h243 typename gemmlowp::FixedPointRawTypeTraits<IntegerType>::ScalarRawType; in SaturatingRoundingMultiplyByPOTParam()
245 gemmlowp::Dup<IntegerType>(std::numeric_limits<ScalarIntegerType>::min()); in SaturatingRoundingMultiplyByPOTParam()
247 gemmlowp::Dup<IntegerType>(std::numeric_limits<ScalarIntegerType>::max()); in SaturatingRoundingMultiplyByPOTParam()
253 gemmlowp::MaskIfGreaterThan(x, gemmlowp::Dup<IntegerType>(threshold)); in SaturatingRoundingMultiplyByPOTParam()
255 gemmlowp::MaskIfLessThan(x, gemmlowp::Dup<IntegerType>(-threshold)); in SaturatingRoundingMultiplyByPOTParam()
257 IntegerType result = gemmlowp::ShiftLeft(x, exponent); in SaturatingRoundingMultiplyByPOTParam()
258 result = gemmlowp::SelectUsingMask(positive_mask, max, result); in SaturatingRoundingMultiplyByPOTParam()
259 result = gemmlowp::SelectUsingMask(negative_mask, min, result); in SaturatingRoundingMultiplyByPOTParam()
266 gemmlowp::FixedPoint<tRawType, tIntegerBits>
268 gemmlowp::FixedPoint<tRawType, tIntegerBits> a, int exponent) { in SaturatingRoundingMultiplyByPOTParam()
[all …]
/external/gemmlowp/test/
Dbenchmark.cc44 namespace gemmlowp { namespace
167 gemmlowp::RegisterCurrentThreadForProfiling(); in benchmark()
168 gemmlowp::StartProfiling(); in benchmark()
188 gemmlowp::FinishProfiling(); in benchmark()
214 gemmlowp::RegisterCurrentThreadForProfiling(); in benchmark_gemm_sizes()
215 gemmlowp::StartProfiling(); in benchmark_gemm_sizes()
225 gemmlowp::FinishProfiling(); in benchmark_gemm_sizes()
330 gemmlowp::GemmContext context; in benchmark_all()
332 gemmlowp::benchmark_small_model(&context); in benchmark_all()
336 gemmlowp::GemmContext context; in benchmark_all()
[all …]
Dbenchmark_all_sizes.cc43 namespace gemmlowp { namespace
110 using namespace gemmlowp; in benchmark_8bit()
128 gemmlowp::OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint in benchmark_8bit()
133 gemmlowp::OutputStageSaturatingCastToUint8 saturating_cast_stage; in benchmark_8bit()
138 gemmlowp::GemmWithOutputPipeline<std::uint8_t, std::uint8_t, BitDepthParams>( in benchmark_8bit()
148 gemmlowp::GemmWithOutputPipeline<std::uint8_t, std::uint8_t, in benchmark_8bit()
162 using namespace gemmlowp; in benchmark_8bit_to_32bit()
180 gemmlowp::GemmWithOutputPipeline<std::uint8_t, std::int32_t, BitDepthParams>( in benchmark_8bit_to_32bit()
190 gemmlowp::GemmWithOutputPipeline<std::uint8_t, std::int32_t, in benchmark_8bit_to_32bit()
233 return benchmark_8bit<gemmlowp::L8R8WithLhsNonzeroBitDepthParams>( in benchmark()
[all …]
Dcorrectness_meta_gemm.cc178 gemmlowp::WorkersPool* pool, std::int32_t pool_size) { in test()
183 gemmlowp::meta::multi_thread_gemm_q8(pool, pool_size, scratch, lhs, rhs, m, n, in test()
190 gemmlowp::WorkersPool* pool, std::int32_t pool_size) { in test_f()
196 gemmlowp::meta::multi_thread_gemm_f(pool, pool_size, scratch, lhs, rhs, m, n, in test_f()
203 std::int32_t* result, gemmlowp::WorkersPool* pool, in test_i32()
209 gemmlowp::meta::multi_thread_gemm_i32(pool, pool_size, scratch, lhs, rhs, m, in test_i32()
217 gemmlowp::WorkersPool* pool, int t) { in q_suite()
230 std::uint8_t* right, float* result, gemmlowp::WorkersPool* pool, in f_suite()
245 gemmlowp::WorkersPool* pool, int t) { in i32_suite()
278 gemmlowp::WorkersPool pool; in main()
/external/tensorflow/tensorflow/lite/kernels/internal/optimized/
Doptimized_ops.h194 gemmlowp::ScopedProfilingLabel label("AddBiasAndEvalActivationFunction"); in AddBiasAndEvalActivationFunction()
245 gemmlowp::ScopedProfilingLabel label("AddBiasAndEvalActivationFunction"); in AddBiasAndEvalActivationFunction()
264 gemmlowp::ScopedProfilingLabel label("GEMV"); in Gemm()
267 gemmlowp::ScopedProfilingLabel label("GEMM"); in Gemm()
276 gemmlowp::Prefetch(ptr); in optimized_ops_preload_l1_stream()
284 gemmlowp::Prefetch(ptr); in optimized_ops_preload_l1_keep()
301 gemmlowp::ScopedProfilingLabel label("GEMVForLstmCell"); in GEMVForLstmCell()
471 using gemmlowp::RoundingDivideByPOT; in GEMVForLstmCell()
488 gemmlowp::ScopedProfilingLabel label("GEMVForLstmCellWithSymmetricRange"); in GEMVForLstmCellWithSymmetricRange()
763 using gemmlowp::RoundingDivideByPOT; in GEMVForLstmCellWithSymmetricRange()
[all …]
/external/gemmlowp/
DREADME.txt1 gemmlowp: a small self-contained low-precision GEMM library
24 gemmlowp-related discussion, about either development or usage, is welcome
27 https://groups.google.com/forum/#!forum/gemmlowp
65 Details of what it takes to make an efficient port of gemmlowp, namely
74 1. gemmlowp public interface
77 gemmlowp's main public interface is in the public/ subdirectory. The
79 public/gemmlowp.h.
102 Because gemmlowp is so simple, working with it involves only
104 most people working with gemmlowp will either manually invoke their
108 Keep in mind (previous section) that gemmlowp itself is a pure-headers-only
[all …]
DCONTRIBUTING.txt25 Getting in touch with the gemmlowp community
28 The central point of communication around gemmlowp is the mailing list,
29 https://groups.google.com/forum/#!forum/gemmlowp
37 guidance. The gemmlowp mailing list is a good place for that.
46 https://github.com/google/gemmlowp
/external/tensorflow/tensorflow/lite/kernels/internal/reference/integer_ops/
Dsoftmax.h38 gemmlowp::FixedPoint<int32, kScaledDiffIntegerBits>; in Softmax()
39 using FixedPointAccum = gemmlowp::FixedPoint<int32, kAccumulationIntegerBits>; in Softmax()
40 using FixedPoint0 = gemmlowp::FixedPoint<int32, 0>; in Softmax()
64 sum_of_exps = sum_of_exps + gemmlowp::Rescale<kAccumulationIntegerBits>( in Softmax()
84 const int32 unsat_output = gemmlowp::RoundingDivideByPOT( in Softmax()
Dmul.h48 gemmlowp::ScopedProfilingLabel label("Mul/8bit"); in Mul()
60 gemmlowp::ScopedProfilingLabel label("Mul/Int16Int8"); in Mul()
71 using F0 = gemmlowp::FixedPoint<std::int16_t, 0>; in Mul()
76 gemmlowp::RoundingDivideByPOT(unclamped_result.raw(), 8); in Mul()
92 gemmlowp::ScopedProfilingLabel label("BroadcastMul4DSlow/8bit"); in BroadcastMul4DSlow()
Dlog_softmax.h40 using F5 = gemmlowp::FixedPoint<int32, kInputIntegerBits>; in LogSoftmax()
41 using F12 = gemmlowp::FixedPoint<int32, kAccumulationIntegerBits>; in LogSoftmax()
61 gemmlowp::Rescale<kAccumulationIntegerBits>( in LogSoftmax()
91 gemmlowp::RoundingDivideByPOT( in LogSoftmax()
Dlogistic.h45 using FixedPoint4 = gemmlowp::FixedPoint<int32_t, kInputIntegerBits>; in Logistic()
47 gemmlowp::logistic(FixedPoint4::FromRaw(input_in_q4)).raw(); in Logistic()
50 using gemmlowp::RoundingDivideByPOT; in Logistic()
Dtanh.h33 using F4 = gemmlowp::FixedPoint<int32_t, kInputIntegerBits>; in Tanh()
46 gemmlowp::tanh(F4::FromRaw(input_in_q4)).raw(); in Tanh()
49 using gemmlowp::RoundingDivideByPOT; in Tanh()
/external/tensorflow/tensorflow/lite/kernels/internal/reference/
Dsoftmax.h74 gemmlowp::FixedPoint<int32, kScaledDiffIntegerBits>; in Softmax()
75 using FixedPointAccum = gemmlowp::FixedPoint<int32, kAccumulationIntegerBits>; in Softmax()
76 using FixedPoint0 = gemmlowp::FixedPoint<int32, 0>; in Softmax()
100 sum_of_exps = sum_of_exps + gemmlowp::Rescale<kAccumulationIntegerBits>( in Softmax()
120 int32 unsat_output = gemmlowp::RoundingDivideByPOT( in Softmax()
Dreference_ops.h211 uint8* im2col_data, gemmlowp::GemmContext* gemm_context) { in Conv()
416 gemmlowp::ScopedProfilingLabel label("Relu1 (not fused)"); in Relu1()
429 gemmlowp::ScopedProfilingLabel label("Relu6 (not fused)"); in Relu6()
444 gemmlowp::ScopedProfilingLabel label("Quantized ReluX (not fused)"); in ReluX()
459 gemmlowp::ScopedProfilingLabel label("LeakyRelu (not fused)"); in LeakyRelu()
672 using F0 = gemmlowp::FixedPoint<std::int16_t, 0>; in Add()
676 gemmlowp::RoundingDivideByPOT(shift_input[i], input_right_shift)); in Add()
677 F0 result = gemmlowp::SaturatingAdd(scaled_input, input_ready_scaled); in Add()
700 gemmlowp::ScopedProfilingLabel label("BroadcastAdd4DSlow/float"); in BroadcastAdd4DSlow()
741 gemmlowp::ScopedProfilingLabel label("BroadcastAdd4DSlow/int32"); in BroadcastAdd4DSlow()
[all …]
/external/tensorflow/tensorflow/lite/experimental/micro/tools/make/
DMakefile38 -I$(MAKEFILE_DIR)/downloads/gemmlowp \
44 -I./third_party/gemmlowp \
51 third_party/gemmlowp \
117 third_party/gemmlowp/fixedpoint/fixedpoint.h \
118 third_party/gemmlowp/fixedpoint/fixedpoint_sse.h \
119 third_party/gemmlowp/internal/detect_platform.h \
120 third_party/gemmlowp/LICENSE \
/external/gemmlowp/internal/
Dkernel_default.h25 namespace gemmlowp {
56 namespace gemmlowp { \
85 namespace gemmlowp {
/external/tensorflow/tensorflow/lite/kernels/
Dgemm_support.cc26 std::unique_ptr<gemmlowp::GemmContext> gemm_context;
51 ptr->gemm_context.reset(new gemmlowp::GemmContext()); in IncrementUsageCounter()
74 gemmlowp::GemmContext* GetFromContext(TfLiteContext* context) { in GetFromContext()

123456