/external/tensorflow/tensorflow/core/kernels/ |
D | meta_support.cc | 79 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 …]
|
D | quantized_matmul_op.cc | 41 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 …]
|
D | quantized_conv_ops.cc | 409 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/ |
D | common.h | 92 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/ |
D | quantization_example.cc | 26 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 …]
|
D | output.md | 1 # 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
|
D | public.md | 3 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/ |
D | gemmlowp.cmake | 17 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/ |
D | optimized_ops.h | 243 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/ |
D | benchmark.cc | 44 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 …]
|
D | benchmark_all_sizes.cc | 43 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 …]
|
D | correctness_meta_gemm.cc | 178 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/ |
D | optimized_ops.h | 194 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/ |
D | README.txt | 1 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 …]
|
D | CONTRIBUTING.txt | 25 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/ |
D | softmax.h | 38 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()
|
D | mul.h | 48 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()
|
D | log_softmax.h | 40 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()
|
D | logistic.h | 45 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()
|
D | tanh.h | 33 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/ |
D | softmax.h | 74 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()
|
D | reference_ops.h | 211 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/ |
D | Makefile | 38 -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/ |
D | kernel_default.h | 25 namespace gemmlowp { 56 namespace gemmlowp { \ 85 namespace gemmlowp {
|
/external/tensorflow/tensorflow/lite/kernels/ |
D | gemm_support.cc | 26 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()
|