You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by la...@apache.org on 2020/07/29 20:32:56 UTC
[incubator-mxnet] branch master updated: Update clang-tidy
integration (#18815)
This is an automated email from the ASF dual-hosted git repository.
lausen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/master by this push:
new 6bbd531 Update clang-tidy integration (#18815)
6bbd531 is described below
commit 6bbd53107aa16fc41e8d462cf5dc46fb70d592df
Author: Leonard Lausen <la...@amazon.com>
AuthorDate: Wed Jul 29 20:31:19 2020 +0000
Update clang-tidy integration (#18815)
Run clang-tidy via cmake only on the code managed by mxnet (and not 3rdparty dependencies), update to clang-tidy-10 and run clang-tidy-10 -fix to fix all the warnings that are enforced on CI.
Developers can run clang-tidy by specifying the -DCMAKE_CXX_CLANG_TIDY="clang-tidy-10" to cmake, or using the python ci/build.py -R --platform ubuntu_cpu /work/runtime_functions.sh build_ubuntu_cpu_clang_tidy script.
---
.clang-tidy | 52 +++++++++-------------
CMakeLists.txt | 13 +++++-
ci/docker/Dockerfile.build.ubuntu | 2 +-
ci/docker/runtime_functions.sh | 7 +--
example/extensions/lib_custom_op/gemm_lib.cc | 11 ++---
.../extensions/lib_custom_op/transposecsr_lib.cc | 9 ++--
.../extensions/lib_custom_op/transposerowsp_lib.cc | 9 ++--
example/extensions/lib_pass/pass_lib.cc | 5 +--
example/extensions/lib_subgraph/subgraph_lib.cc | 28 ++++++------
src/api/operator/numpy/linalg/np_norm.cc | 2 +-
.../numpy/np_broadcast_reduce_op_boolean.cc | 4 +-
.../operator/numpy/np_broadcast_reduce_op_index.cc | 4 +-
.../operator/numpy/np_broadcast_reduce_op_value.cc | 16 +++----
src/api/operator/numpy/np_cumsum.cc | 2 +-
src/api/operator/numpy/np_delete_op.cc | 2 +-
src/api/operator/numpy/np_ediff1d_op.cc | 2 +-
src/api/operator/numpy/np_einsum_op.cc | 2 +-
.../operator/numpy/np_elemwise_unary_op_basic.cc | 2 +-
src/api/operator/numpy/np_fill_diagonal_op.cc | 2 +-
src/api/operator/numpy/np_histogram_op.cc | 2 +-
src/api/operator/numpy/np_init_op.cc | 20 ++++-----
src/api/operator/numpy/np_insert_op.cc | 6 +--
src/api/operator/numpy/np_interp_op.cc | 4 +-
src/api/operator/numpy/np_matrix_op.cc | 26 +++++------
src/api/operator/numpy/np_moments_op.cc | 6 +--
src/api/operator/numpy/np_nan_to_num_op.cc | 2 +-
src/api/operator/numpy/np_pad_op.cc | 2 +-
src/api/operator/numpy/np_percentile_op.cc | 4 +-
src/api/operator/numpy/np_repeat_op.cc | 2 +-
src/api/operator/numpy/np_tensordot_op.cc | 2 +-
src/api/operator/numpy/np_unique_op.cc | 2 +-
src/api/operator/numpy/np_window_op.cc | 2 +-
src/api/operator/numpy/random/np_choice_op.cc | 2 +-
src/api/operator/numpy/random/np_exponential_op.cc | 2 +-
src/api/operator/numpy/random/np_laplace_op.cc | 2 +-
.../operator/numpy/random/np_location_scale_op.cc | 4 +-
src/api/operator/numpy/random/np_pareto_op.cc | 2 +-
src/api/operator/numpy/random/np_power_op.cc | 2 +-
src/api/operator/numpy/random/np_rayleigh_op.cc | 2 +-
src/api/operator/numpy/random/np_weibull_op.cc | 2 +-
src/api/operator/random/np_gamma_op.cc | 2 +-
src/api/operator/random/np_normal_op.cc | 2 +-
src/api/operator/random/np_uniform_op.cc | 2 +-
src/api/operator/tensor/matrix_op.cc | 2 +-
src/c_api/c_api.cc | 20 ++++-----
src/c_api/c_api_profile.cc | 2 +-
src/c_api/c_api_symbolic.cc | 22 ++++-----
src/engine/naive_engine.cc | 18 +++++---
src/engine/threaded_engine_perdevice.cc | 28 ++++++------
src/engine/threaded_engine_pooled.cc | 13 +++---
src/imperative/attach_op_execs_pass.cc | 29 ++++++------
src/imperative/cached_op.cc | 6 +--
src/imperative/cached_op_threadsafe.cc | 2 +-
src/imperative/eliminate_common_expr_pass.cc | 8 ++--
src/imperative/imperative.cc | 8 ++--
src/initialize.cc | 5 ++-
src/io/batchify.cc | 16 +++----
src/io/dataloader.cc | 16 +++----
src/io/dataset.cc | 46 +++++++++----------
src/io/image_aug_default.cc | 2 +-
src/io/image_det_aug_default.cc | 2 +-
src/io/iter_csv.cc | 30 ++++++-------
src/io/iter_image_det_recordio.cc | 19 ++++----
src/io/iter_image_recordio.cc | 19 ++++----
src/io/iter_image_recordio_2.cc | 46 +++++++++----------
src/io/iter_libsvm.cc | 16 +++----
src/io/iter_mnist.cc | 22 ++++-----
src/io/iter_sampler.cc | 23 +++++-----
src/kvstore/kvstore.cc | 3 +-
src/nnvm/gradient.cc | 9 ++--
src/nnvm/graph_editor.cc | 4 +-
src/nnvm/low_precision_pass.cc | 15 +++----
src/nnvm/tvm_bridge.cc | 3 +-
src/operator/contrib/boolean_mask.cc | 4 +-
src/operator/contrib/dgl_graph.cc | 49 ++++++++++----------
src/operator/contrib/multi_proposal.cc | 8 ++--
src/operator/contrib/proposal.cc | 8 ++--
src/operator/contrib/rroi_align.cc | 2 +-
src/operator/control_flow.cc | 12 ++---
src/operator/leaky_relu.cc | 2 +-
src/operator/numpy/np_einsum_op.cc | 4 +-
src/operator/numpy/np_indexing_op.cc | 4 +-
src/operator/numpy/np_polynomial_op.cc | 2 +-
src/operator/operator_tune.cc | 2 +-
src/operator/quantization/quantize_graph_pass.cc | 7 ++-
.../quantization/quantized_elemwise_mul.cc | 4 +-
.../quantization/quantized_fully_connected.cc | 2 +-
src/operator/subgraph/default_subgraph_property.cc | 16 ++++---
.../subgraph/default_subgraph_property_v2.cc | 4 +-
src/profiler/aggregate_stats.cc | 4 +-
src/profiler/profiler.cc | 6 +--
src/resource.cc | 20 ++++-----
src/runtime/registry.cc | 2 +-
src/storage/storage.cc | 2 +-
tests/cpp/engine/thread_local_test.cc | 2 +-
tests/cpp/engine/threaded_engine_test.cc | 8 ++--
tests/cpp/operator/batchnorm_test.cc | 21 +++++----
tests/cpp/operator/runner/core_op_runner_test.cc | 10 ++---
tests/cpp/storage/storage_test.cc | 2 +-
tools/im2rec.cc | 2 +-
100 files changed, 479 insertions(+), 462 deletions(-)
diff --git a/.clang-tidy b/.clang-tidy
index 25fbff9..b0f28e2 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -17,45 +17,33 @@
# The checks defined here will be run and will display by default as warnings.
Checks: >
- -*, cppcoreguidelines-c-copy-assignment-signature,
- cppcoreguidelines-interfaces-global-init, cppcoreguidelines-no-malloc,
- cppcoreguidelines-pro-bounds-constant-array-index, cppcoreguidelines-pro-type-const-cast,
- cppcoreguidelines-pro-type-cstyle-cast, cppcoreguidelines-pro-type-member-init,
- cppcoreguidelines-pro-type-static-cast-downcast, cppcoreguidelines-pro-type-union-access,
- cppcoreguidelines-pro-type-vararg, cppcoreguidelines-slicing,
- cppcoreguidelines-special-member-functions, clang-analyzer-security.FloatLoopCounter,
- clang-analyzer-security.insecureAPI.*, clang-analyzer-core.CallAndMessage,
- clang-analyzer-core.DivideZero, clang-analyzer-core.DynamicTypePropagation,
- clang-analyzer-core.NonNullParamChecker, clang-analyzer-core.NullDereference,
- clang-analyzer-core.StackAddressEscape, clang-analyzer-core.UndefinedBinaryOperatorResult,
- clang-analyzer-core.VLASize, clang-analyzer-core.builtin.BuiltinFunctions,
- clang-analyzer-core.builtin.NoReturnFunctions, clang-analyzer-core.uninitialized.ArraySubscript,
- clang-analyzer-core.uninitialized.Assign, clang-analyzer-core.uninitialized.Branch,
- clang-analyzer-core.uninitialized.CapturedBlockVariable,
- clang-analyzer-core.uninitialized.UndefReturn, clang-analyzer-cplusplus.NewDelete,
- clang-analyzer-cplusplus.NewDeleteLeaks, clang-analyzer-cplusplus.SelfAssignment,
- clang-analyzer-deadcode.DeadStores, modernize-avoid-bind, modernize-deprecated-headers,
- modernize-loop-convert, modernize-make-shared, modernize-pass-by-value,
+ -*, cppcoreguidelines-* clang-analyzer-*, modernize-*,
+ performance-faster-string-find, performance-for-range-copy,
+ performance-implicit-conversion-in-loop, performance-inefficient-algorithm,
+ performance-inefficient-string-concatenation, performance-trivially-destructible,
+ performance-inefficient-vector-operation, performance-move-const-arg,
+ performance-move-constructor-init, performance-noexcept-move-constructor,
+ performance-no-automatic-move, performance-unnecessary-copy-initialization,
+ performance-type-promotion-in-math-fn
+
+# performance checks not enabled due to segmentation fault in clang-tidy v8+:
+# performance-unnecessary-value-param
+
+# In order to trigger an error, you must have a rule defined both in checks and in this section.
+WarningsAsErrors: >
+ cppcoreguidelines-no-malloc, modernize-deprecated-headers,
+ modernize-loop-convert, modernize-make-shared, modernize-pass-by-value, modernize-make-unique,
modernize-raw-string-literal, modernize-redundant-void-arg, modernize-replace-auto-ptr,
modernize-replace-random-shuffle, modernize-return-braced-init-list, modernize-shrink-to-fit,
modernize-unary-static-assert, modernize-use-bool-literals, modernize-use-default-member-init,
modernize-use-emplace, modernize-use-equals-default, modernize-use-equals-delete,
modernize-use-noexcept, modernize-use-nullptr, modernize-use-override,
- modernize-use-transparent-functors, modernize-use-using, performance-*
+ modernize-use-transparent-functors, modernize-use-using,
+ performance-unnecessary-copy-initialization, performance-move-const-arg
-# cppcoreguidelines checks not enabled:
-# cppcoreguidelines-pro-bounds-pointer-arithmetic
-# cppcoreguidelines-pro-bounds-array-to-pointer-decay
-# cppcoreguidelines-pro-type-reinterpret-cast
-
-# modernize checks not enabled:
+# modernize checks not enforced:
# modernize-use-auto
-# modernize-make-unique (C++14 and newer only)
-
-# In order to trigger an error, you must have a rule defined both in checks and in this section.
-WarningsAsErrors: >
- cppcoreguidelines-no-malloc, modernize-use-nullptr, performance-unnecessary-copy-initialization,
- modernize-use-emplace, performance-move-const-arg
+# modernize-avoid-bind
# Todo: define a better regex match that includes most project headers, but excludes third party
# code.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 162eeea..5f1a510 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -275,6 +275,7 @@ if(USE_MKLDNN)
include_directories(${PROJECT_BINARY_DIR}/3rdparty/mkldnn/include)
add_definitions(-DMXNET_USE_MKLDNN=1)
list(APPEND mxnet_LINKER_LIBS dnnl)
+ set_target_properties(dnnl PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
endif()
# Allow Cuda compiles outside of src tree to find things in 'src' and 'include'
@@ -405,6 +406,7 @@ if(USE_OPENMP)
AND NOT CMAKE_CROSSCOMPILING)
load_omp()
list(APPEND mxnet_LINKER_LIBS omp)
+ set_target_properties(omp PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
if(UNIX)
list(APPEND mxnet_LINKER_LIBS pthread)
endif()
@@ -462,6 +464,8 @@ set(GTEST_MAIN_LIBRARY gtest_main)
set(GTEST_LIBRARY gtest)
add_subdirectory(${GTEST_ROOT})
+set_target_properties(gtest PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
+set_target_properties(gtest_main PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
find_package(GTest REQUIRED)
# cudnn detection
@@ -478,6 +482,7 @@ endif()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/dmlc-core/cmake)
add_subdirectory("3rdparty/dmlc-core")
+ set_target_properties(dmlc PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
endif()
FILE(GLOB_RECURSE SOURCE "src/*.cc" "src/*.h" "include/*.h")
@@ -492,7 +497,9 @@ FILE(GLOB_RECURSE NNVMSOURCE
3rdparty/tvm/nnvm/src/core/*.h
3rdparty/tvm/nnvm/src/pass/*.h
3rdparty/tvm/nnvm/include/*.h)
-list(APPEND SOURCE ${NNVMSOURCE})
+add_library(nnvm OBJECT ${NNVMSOURCE})
+set_target_properties(nnvm PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
+list(APPEND SOURCE $<TARGET_OBJECTS:nnvm>)
# add source group
FILE(GLOB_RECURSE GROUP_SOURCE "src/*.cc" "3rdparty/tvm/nnvm/*.cc" "plugin/*.cc")
@@ -743,6 +750,7 @@ if(USE_DIST_KVSTORE)
add_subdirectory("3rdparty/ps-lite")
add_definitions(-DMXNET_USE_DIST_KVSTORE)
list(APPEND mxnet_LINKER_LIBS pslite)
+ set_target_properties(pslite PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
endif()
if(USE_MKLDNN)
@@ -757,6 +765,9 @@ function(BuildTVMOP)
# scope the variables in BuildTVM.cmake to avoid conflict
include(cmake/BuildTVM.cmake)
add_subdirectory("3rdparty/tvm")
+ set_target_properties(tvm PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
+ set_target_properties(tvm_topi PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
+ set_target_properties(tvm_runtime PROPERTIES CXX_CLANG_TIDY "") # don't lint 3rdparty dependency
endfunction()
if(USE_TVM_OP)
diff --git a/ci/docker/Dockerfile.build.ubuntu b/ci/docker/Dockerfile.build.ubuntu
index c9ec3f5..8398dc9 100644
--- a/ci/docker/Dockerfile.build.ubuntu
+++ b/ci/docker/Dockerfile.build.ubuntu
@@ -53,9 +53,9 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
protobuf-compiler \
libprotobuf-dev \
clang-6.0 \
- clang-tidy-6.0 \
python-yaml \
clang-10 \
+ clang-tidy-10 \
g++ \
g++-8 \
intel-mkl-2020.0-088 \
diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh
index e175d33..76b723c 100755
--- a/ci/docker/runtime_functions.sh
+++ b/ci/docker/runtime_functions.sh
@@ -462,9 +462,8 @@ build_ubuntu_cpu_clang100() {
build_ubuntu_cpu_clang_tidy() {
set -ex
cd /work/build
- export CLANG_TIDY=/usr/lib/llvm-6.0/share/clang/run-clang-tidy.py
# TODO(leezu) USE_OPENMP=OFF 3rdparty/dmlc-core/CMakeLists.txt:79 broken?
- CXX=clang++-6.0 CC=clang-6.0 cmake \
+ CXX=clang++-10 CC=clang-10 cmake \
-DUSE_MKL_IF_AVAILABLE=OFF \
-DUSE_MKLDNN=OFF \
-DUSE_CUDA=OFF \
@@ -472,11 +471,9 @@ build_ubuntu_cpu_clang_tidy() {
-DCMAKE_BUILD_TYPE=Debug \
-DUSE_DIST_KVSTORE=ON \
-DUSE_CPP_PACKAGE=ON \
- -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
+ -DCMAKE_CXX_CLANG_TIDY=clang-tidy-10 \
-G Ninja /work/mxnet
ninja
- cd /work/mxnet
- $CLANG_TIDY -p /work/build -j $(nproc) -clang-tidy-binary clang-tidy-6.0 /work/mxnet/src
}
build_ubuntu_cpu_clang6_mkldnn() {
diff --git a/example/extensions/lib_custom_op/gemm_lib.cc b/example/extensions/lib_custom_op/gemm_lib.cc
index 4f8daba..764ac49 100644
--- a/example/extensions/lib_custom_op/gemm_lib.cc
+++ b/example/extensions/lib_custom_op/gemm_lib.cc
@@ -24,6 +24,7 @@
*/
#include <iostream>
+#include <utility>
#include "lib_api.h"
// main matrix multiplication routine
@@ -179,23 +180,23 @@ REGISTER_OP(my_gemm)
class MyStatefulGemm : public CustomStatefulOp {
public:
explicit MyStatefulGemm(int count,
- const std::unordered_map<std::string, std::string>& attrs)
- : count(count), attrs_(attrs) {}
+ std::unordered_map<std::string, std::string> attrs)
+ : count(count), attrs_(std::move(attrs)) {}
MXReturnValue Forward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
std::cout << "Info: keyword + number of forward: " << ++count << std::endl;
return forward(attrs_, inputs, outputs, op_res);
}
MXReturnValue Backward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
return backward(attrs_, inputs, outputs, op_res);
}
- ~MyStatefulGemm() {}
+ ~MyStatefulGemm() = default;
private:
int count;
diff --git a/example/extensions/lib_custom_op/transposecsr_lib.cc b/example/extensions/lib_custom_op/transposecsr_lib.cc
index 224cd6a..fc80751 100644
--- a/example/extensions/lib_custom_op/transposecsr_lib.cc
+++ b/example/extensions/lib_custom_op/transposecsr_lib.cc
@@ -24,6 +24,7 @@
*/
#include <iostream>
+#include <utility>
#include "lib_api.h"
void transpose(MXTensor& src, MXTensor& dst, const OpResource& res) {
@@ -151,19 +152,19 @@ REGISTER_OP(my_transposecsr)
class MyStatefulTransposeCSR : public CustomStatefulOp {
public:
explicit MyStatefulTransposeCSR(int count,
- const std::unordered_map<std::string, std::string>& attrs)
- : count(count), attrs_(attrs) {}
+ std::unordered_map<std::string, std::string> attrs)
+ : count(count), attrs_(std::move(attrs)) {}
MXReturnValue Forward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
std::cout << "Info: keyword + number of forward: " << ++count << std::endl;
return forward(attrs_, inputs, outputs, op_res);
}
MXReturnValue Backward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
return backward(attrs_, inputs, outputs, op_res);
}
diff --git a/example/extensions/lib_custom_op/transposerowsp_lib.cc b/example/extensions/lib_custom_op/transposerowsp_lib.cc
index 46d3c4d..5b6f0f3 100644
--- a/example/extensions/lib_custom_op/transposerowsp_lib.cc
+++ b/example/extensions/lib_custom_op/transposerowsp_lib.cc
@@ -24,6 +24,7 @@
*/
#include <iostream>
+#include <utility>
#include "lib_api.h"
void transpose(MXTensor& src, MXTensor& dst, const OpResource& res) {
@@ -153,19 +154,19 @@ REGISTER_OP(my_transposerowsp)
class MyStatefulTransposeRowSP : public CustomStatefulOp {
public:
explicit MyStatefulTransposeRowSP(int count,
- const std::unordered_map<std::string, std::string>& attrs)
- : count(count), attrs_(attrs) {}
+ std::unordered_map<std::string, std::string> attrs)
+ : count(count), attrs_(std::move(attrs)) {}
MXReturnValue Forward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
std::cout << "Info: keyword + number of forward: " << ++count << std::endl;
return forward(attrs_, inputs, outputs, op_res);
}
MXReturnValue Backward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
return backward(attrs_, inputs, outputs, op_res);
}
diff --git a/example/extensions/lib_pass/pass_lib.cc b/example/extensions/lib_pass/pass_lib.cc
index bbdcd73..ca77b59 100644
--- a/example/extensions/lib_pass/pass_lib.cc
+++ b/example/extensions/lib_pass/pass_lib.cc
@@ -23,7 +23,7 @@
* \brief subgraph operator implementation library file
*/
-#include <math.h>
+#include <cmath>
#include <iostream>
#include <algorithm>
#include "lib_api.h"
@@ -67,8 +67,7 @@ MXReturnValue jsonPass(const std::string& in_graph, const std::string** out_grap
JsonVal nodes = json_val.map[JsonVal("nodes")];
// loop over nodes
- for(int i=0; i<nodes.list.size(); i++) {
- JsonVal node = nodes.list[i];
+ for(auto node : nodes.list) {
// get the op name
std::string op = node.map[JsonVal("op")].str;
// get node ID inputs to op
diff --git a/example/extensions/lib_subgraph/subgraph_lib.cc b/example/extensions/lib_subgraph/subgraph_lib.cc
index 2844207..82684ba 100644
--- a/example/extensions/lib_subgraph/subgraph_lib.cc
+++ b/example/extensions/lib_subgraph/subgraph_lib.cc
@@ -23,9 +23,10 @@
* \brief subgraph operator implementation library file
*/
-#include <math.h>
+#include <cmath>
#include <iostream>
#include <algorithm>
+#include <utility>
#include "lib_api.h"
/* function to execute log operator on floats */
@@ -69,8 +70,7 @@ MXReturnValue myExecutor(std::vector<MXTensor>* inputs,
std::vector<void*> to_free;
// loop over nodes
- for(int i=0; i<nodes.list.size(); i++) {
- JsonVal node = nodes.list[i];
+ for(auto node : nodes.list) {
// get the op name
std::string op = node.map[JsonVal("op")].str;
// get node ID inputs to op
@@ -84,7 +84,7 @@ MXReturnValue myExecutor(std::vector<MXTensor>* inputs,
// get input tensor based on node ID inputs from data storage
MXTensor &input = data[node_inputs.list[0].list[0].num];
// create temporary storage
- MXTensor tmp(malloc(input.size()*4), input.shape, input.dtype, 0, MXContext::CPU(0), kDefaultStorage);
+ MXTensor tmp(malloc(input.size()*4), input.shape, input.dtype, 0, MXContext::CPU(0), kDefaultStorage); // NOLINT
// save allocated ptr to free later
to_free.push_back(tmp.data_ptr);
// execute log operator
@@ -95,7 +95,7 @@ MXReturnValue myExecutor(std::vector<MXTensor>* inputs,
// get input tensor based on node ID inputs from data storage
MXTensor &input = data[node_inputs.list[0].list[0].num];
// create temporary storage
- MXTensor tmp(malloc(input.size()*4), input.shape, input.dtype, 0, MXContext::CPU(0), kDefaultStorage);
+ MXTensor tmp(malloc(input.size()*4), input.shape, input.dtype, 0, MXContext::CPU(0), kDefaultStorage); // NOLINT
// save allocated ptr to free later
to_free.push_back(tmp.data_ptr);
// execute exp operator
@@ -106,7 +106,7 @@ MXReturnValue myExecutor(std::vector<MXTensor>* inputs,
std::cout << "Error! Unsupported op '" << op << "' found in myExecutor";
// free allocated temporary storage
for (void* ptr : to_free)
- free(ptr);
+ free(ptr); // NOLINT
return MX_FAIL;
}
}
@@ -129,7 +129,7 @@ MXReturnValue myExecutor(std::vector<MXTensor>* inputs,
// free allocated temporary storage
for (void* ptr : to_free) {
- free(ptr);
+ free(ptr); // NOLINT
}
return MX_SUCCESS;
@@ -137,9 +137,9 @@ MXReturnValue myExecutor(std::vector<MXTensor>* inputs,
class MyStatefulOp : public CustomStatefulOp {
public:
- explicit MyStatefulOp(const std::string& sym,
+ explicit MyStatefulOp(std::string sym,
const std::unordered_map<std::string, std::string>& attrs)
- : subgraph_sym(sym), attrs_(attrs) {
+ : subgraph_sym(std::move(sym)), attrs_(attrs) {
for (auto kv : attrs) {
std::cout << "subgraphOp attributes: " << kv.first << " ==> " << kv.second << std::endl;
}
@@ -147,7 +147,7 @@ class MyStatefulOp : public CustomStatefulOp {
MXReturnValue Forward(std::vector<MXTensor>* inputs,
std::vector<MXTensor>* outputs,
- const OpResource& op_res) {
+ const OpResource& op_res) override {
return myExecutor(inputs, outputs, subgraph_sym);
}
@@ -299,20 +299,20 @@ class MySelector : public CustomOpSelector {
}
return false;
}
- virtual bool Select(int nodeID) {
+ bool Select(int nodeID) override {
return chooseNode(nodeID);
}
- virtual bool SelectInput(int nodeID, int input_nodeID) {
+ bool SelectInput(int nodeID, int input_nodeID) override {
return chooseNode(input_nodeID);
}
- virtual bool SelectOutput(int nodeID, int output_nodeID) {
+ bool SelectOutput(int nodeID, int output_nodeID) override {
return chooseNode(output_nodeID);
}
virtual void Filter(std::vector<int>& candidates,
std::vector<int>& keep) {
keep.insert(keep.end(), candidates.begin(), candidates.end());
}
- virtual void Reset() {}
+ void Reset() override {}
private:
std::string graph_json;
JsonVal nodes;
diff --git a/src/api/operator/numpy/linalg/np_norm.cc b/src/api/operator/numpy/linalg/np_norm.cc
index 708b08d..1928321 100644
--- a/src/api/operator/numpy/linalg/np_norm.cc
+++ b/src/api/operator/numpy/linalg/np_norm.cc
@@ -44,7 +44,7 @@ MXNET_REGISTER_API("_npi.norm")
param.flag = args[4].operator int();
attrs.op = op;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyNormParam>(&attrs);
// inputs
diff --git a/src/api/operator/numpy/np_broadcast_reduce_op_boolean.cc b/src/api/operator/numpy/np_broadcast_reduce_op_boolean.cc
index dea510a..c3e1861 100644
--- a/src/api/operator/numpy/np_broadcast_reduce_op_boolean.cc
+++ b/src/api/operator/numpy/np_broadcast_reduce_op_boolean.cc
@@ -48,7 +48,7 @@ MXNET_REGISTER_API("_npi.all")
param.keepdims = args[2].operator bool();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesBoolParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
@@ -79,7 +79,7 @@ MXNET_REGISTER_API("_npi.any")
param.keepdims = args[2].operator bool();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesBoolParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
diff --git a/src/api/operator/numpy/np_broadcast_reduce_op_index.cc b/src/api/operator/numpy/np_broadcast_reduce_op_index.cc
index aa24246..83e1699 100644
--- a/src/api/operator/numpy/np_broadcast_reduce_op_index.cc
+++ b/src/api/operator/numpy/np_broadcast_reduce_op_index.cc
@@ -44,7 +44,7 @@ MXNET_REGISTER_API("_npi.argmax")
// param.keepdims
param.keepdims = args[2].operator bool();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::ReduceAxisParam>(&attrs);
// inputs
@@ -77,7 +77,7 @@ MXNET_REGISTER_API("_npi.argmin")
// param.keepdims
param.keepdims = args[2].operator bool();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::ReduceAxisParam>(&attrs);
// inputs
diff --git a/src/api/operator/numpy/np_broadcast_reduce_op_value.cc b/src/api/operator/numpy/np_broadcast_reduce_op_value.cc
index a3a45d2..0fe7fc4 100644
--- a/src/api/operator/numpy/np_broadcast_reduce_op_value.cc
+++ b/src/api/operator/numpy/np_broadcast_reduce_op_value.cc
@@ -40,7 +40,7 @@ MXNET_REGISTER_API("_npi.broadcast_to")
} else {
param.shape = TShape(args[1].operator ObjectRef());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::BroadcastToParam>(&attrs);
@@ -91,7 +91,7 @@ MXNET_REGISTER_API("_npi.sum")
param.initial = args[4].operator double();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyReduceAxesParam>(&attrs);
@@ -133,7 +133,7 @@ MXNET_REGISTER_API("_npi.mean")
param.keepdims = args[3].operator bool();
}
param.initial = dmlc::optional<double>();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesParam>(&attrs);
int num_inputs = 1;
@@ -177,7 +177,7 @@ MXNET_REGISTER_API("_npi.prod")
} else {
param.initial = args[4].operator double();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesParam>(&attrs);
int num_inputs = 1;
@@ -213,7 +213,7 @@ MXNET_REGISTER_API("_npi.max")
param.keepdims = args[2].operator bool();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesNoDTypeParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
@@ -244,7 +244,7 @@ MXNET_REGISTER_API("_npi.min")
param.keepdims = args[2].operator bool();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesNoDTypeParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
@@ -275,7 +275,7 @@ MXNET_REGISTER_API("_npi.amax")
param.keepdims = args[2].operator bool();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesNoDTypeParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
@@ -306,7 +306,7 @@ MXNET_REGISTER_API("_npi.amin")
param.keepdims = args[2].operator bool();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyReduceAxesNoDTypeParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
diff --git a/src/api/operator/numpy/np_cumsum.cc b/src/api/operator/numpy/np_cumsum.cc
index d0b200c..a0f68cc 100644
--- a/src/api/operator/numpy/np_cumsum.cc
+++ b/src/api/operator/numpy/np_cumsum.cc
@@ -46,7 +46,7 @@ MXNET_REGISTER_API("_npi.cumsum")
} else {
param.dtype = String2MXNetTypeWithBool(args[2].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::CumsumParam>(&attrs);
// inputs
diff --git a/src/api/operator/numpy/np_delete_op.cc b/src/api/operator/numpy/np_delete_op.cc
index 925c8b5..f374b23 100644
--- a/src/api/operator/numpy/np_delete_op.cc
+++ b/src/api/operator/numpy/np_delete_op.cc
@@ -90,7 +90,7 @@ MXNET_REGISTER_API("_npi.delete")
for (int i = 0; i < num_inputs; ++i) {
inputs.push_back(args[i].operator mxnet::NDArray*());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyDeleteParam>(&attrs);
int num_outputs = 0;
diff --git a/src/api/operator/numpy/np_ediff1d_op.cc b/src/api/operator/numpy/np_ediff1d_op.cc
index df97fd8..64e1506 100644
--- a/src/api/operator/numpy/np_ediff1d_op.cc
+++ b/src/api/operator/numpy/np_ediff1d_op.cc
@@ -63,7 +63,7 @@ MXNET_REGISTER_API("_npi.ediff1d")
num_inputs++;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::EDiff1DParam>(&attrs);
diff --git a/src/api/operator/numpy/np_einsum_op.cc b/src/api/operator/numpy/np_einsum_op.cc
index a5b8339..900739a 100644
--- a/src/api/operator/numpy/np_einsum_op.cc
+++ b/src/api/operator/numpy/np_einsum_op.cc
@@ -43,7 +43,7 @@ MXNET_REGISTER_API("_npi.einsum")
// param.optimize
param.optimize = args[args_size - 1].operator int();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyEinsumParam>(&attrs);
diff --git a/src/api/operator/numpy/np_elemwise_unary_op_basic.cc b/src/api/operator/numpy/np_elemwise_unary_op_basic.cc
index 720ab37..9840fc4 100644
--- a/src/api/operator/numpy/np_elemwise_unary_op_basic.cc
+++ b/src/api/operator/numpy/np_elemwise_unary_op_basic.cc
@@ -98,7 +98,7 @@ MXNET_REGISTER_API("_npi.around")
nnvm::NodeAttrs attrs;
op::AroundParam param;
param.decimals = args[1].operator int64_t();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::AroundParam>(&attrs);
int num_inputs = 1;
diff --git a/src/api/operator/numpy/np_fill_diagonal_op.cc b/src/api/operator/numpy/np_fill_diagonal_op.cc
index 6f8959e..f087e7d 100644
--- a/src/api/operator/numpy/np_fill_diagonal_op.cc
+++ b/src/api/operator/numpy/np_fill_diagonal_op.cc
@@ -44,7 +44,7 @@ MXNET_REGISTER_API("_npi.fill_diagonal")
}
param.wrap = args[2].operator bool();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyFillDiagonalParam>(&attrs);
diff --git a/src/api/operator/numpy/np_histogram_op.cc b/src/api/operator/numpy/np_histogram_op.cc
index b517cce..fa91126 100644
--- a/src/api/operator/numpy/np_histogram_op.cc
+++ b/src/api/operator/numpy/np_histogram_op.cc
@@ -49,7 +49,7 @@ MXNET_REGISTER_API("_npi.histogram")
param.range = Obj2Tuple<double, Float>(args[3].operator ObjectRef());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::HistogramParam>(&attrs);
diff --git a/src/api/operator/numpy/np_init_op.cc b/src/api/operator/numpy/np_init_op.cc
index 1550355..b9ab897 100644
--- a/src/api/operator/numpy/np_init_op.cc
+++ b/src/api/operator/numpy/np_init_op.cc
@@ -47,7 +47,7 @@ MXNET_REGISTER_API("_npi.zeros")
} else {
param.dtype = String2MXNetTypeWithBool(args[1].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::InitOpParam>(&attrs);
if (args[2].type_code() != kNull) {
@@ -70,7 +70,7 @@ MXNET_REGISTER_API("_npi.full_like")
} else {
param.dtype = String2MXNetTypeWithBool(args[2].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[3].type_code() != kNull) {
attrs.dict["ctx"] = args[3].operator std::string();
@@ -107,7 +107,7 @@ MXNET_REGISTER_API("_npi.indices")
} else {
param.dtype = String2MXNetTypeWithBool(args[1].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::IndicesOpParam>(&attrs);
// param.ctx
@@ -223,7 +223,7 @@ MXNET_REGISTER_API("_npi.arange")
} else {
param.dtype = String2MXNetTypeWithBool(args[3].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::RangeParam>(&attrs);
if (args[4].type_code() != kNull) {
@@ -252,7 +252,7 @@ MXNET_REGISTER_API("_npi.eye")
} else {
param.dtype = String2MXNetTypeWithBool(args[4].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyEyeParam>(&attrs);
if (args[3].type_code() != kNull) {
@@ -282,7 +282,7 @@ MXNET_REGISTER_API("_npi.linspace")
} else {
param.dtype = String2MXNetTypeWithBool(args[5].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::LinspaceParam>(&attrs);
if (args[4].type_code() != kNull) {
@@ -317,7 +317,7 @@ MXNET_REGISTER_API("_npi.logspace")
} else {
param.dtype = String2MXNetTypeWithBool(args[6].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::LogspaceParam>(&attrs);
if (args[5].type_code() != kNull) {
@@ -344,7 +344,7 @@ MXNET_REGISTER_API("_npi.ones")
} else {
param.dtype = String2MXNetTypeWithBool(args[1].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[2].type_code() != kNull) {
attrs.dict["ctx"] = args[2].operator std::string();
@@ -372,7 +372,7 @@ MXNET_REGISTER_API("_npi.full")
param.dtype = String2MXNetTypeWithBool(args[1].operator std::string());
}
param.value = args[2].operator double();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[3].type_code() != kNull) {
attrs.dict["ctx"] = args[3].operator std::string();
@@ -401,7 +401,7 @@ MXNET_REGISTER_API("_npi.identity")
} else {
param.dtype = String2MXNetTypeWithBool(args[1].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[2].type_code() != kNull) {
attrs.dict["ctx"] = args[2].operator std::string();
diff --git a/src/api/operator/numpy/np_insert_op.cc b/src/api/operator/numpy/np_insert_op.cc
index 0de645e..7b2aeaa 100644
--- a/src/api/operator/numpy/np_insert_op.cc
+++ b/src/api/operator/numpy/np_insert_op.cc
@@ -57,7 +57,7 @@ MXNET_REGISTER_API("_npi.insert_scalar")
} else {
param.axis = args[3].operator int();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyInsertParam>(&attrs);
std::vector<NDArray*> inputs;
@@ -105,7 +105,7 @@ MXNET_REGISTER_API("_npi.insert_slice")
} else {
param.axis = args[5].operator int();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyInsertParam>(&attrs);
std::vector<NDArray*> inputs;
@@ -141,7 +141,7 @@ MXNET_REGISTER_API("_npi.insert_tensor")
} else {
param.axis = args[3].operator int();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyInsertParam>(&attrs);
std::vector<NDArray*> inputs;
diff --git a/src/api/operator/numpy/np_interp_op.cc b/src/api/operator/numpy/np_interp_op.cc
index 7959383..0b89373 100644
--- a/src/api/operator/numpy/np_interp_op.cc
+++ b/src/api/operator/numpy/np_interp_op.cc
@@ -53,7 +53,7 @@ MXNET_REGISTER_API("_npi.interp")
param.x_scalar = args[2].operator double();
param.x_is_scalar = true;
attrs.op = op;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyInterpParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*(), args[1].operator mxnet::NDArray*()};
int num_inputs = 2;
@@ -64,7 +64,7 @@ MXNET_REGISTER_API("_npi.interp")
param.x_scalar = 0.0;
param.x_is_scalar = false;
attrs.op = op;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyInterpParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*(), args[1].operator mxnet::NDArray*(),
args[2].operator mxnet::NDArray*()};
diff --git a/src/api/operator/numpy/np_matrix_op.cc b/src/api/operator/numpy/np_matrix_op.cc
index 45146ae..7b53c58 100644
--- a/src/api/operator/numpy/np_matrix_op.cc
+++ b/src/api/operator/numpy/np_matrix_op.cc
@@ -44,7 +44,7 @@ MXNET_REGISTER_API("_npi.transpose")
} else {
param.axes = TShape(args[1].operator ObjectRef());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyTransposeParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
@@ -92,7 +92,7 @@ MXNET_REGISTER_API("_npi.stack")
param.num_args = i;
param.axis = args[i].operator int64_t();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::StackParam>(&attrs);
NDArray* out = args[i+1].operator mxnet::NDArray*();
@@ -126,7 +126,7 @@ MXNET_REGISTER_API("_npi.flip")
}
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::FlipParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
@@ -150,7 +150,7 @@ MXNET_REGISTER_API("_npi.concatenate")
} else {
param.axis = args[arg_size - 2].operator int();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyConcatenateParam>(&attrs);
int num_inputs = arg_size - 2;
@@ -222,7 +222,7 @@ MXNET_REGISTER_API("_npi.split")
}
param.sections = 0;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::SplitParam>(&attrs);
@@ -256,7 +256,7 @@ MXNET_REGISTER_API("_npi.roll")
} else {
param.axis = TShape(args[2].operator ObjectRef());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyRollParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
@@ -280,7 +280,7 @@ MXNET_REGISTER_API("_npi.rot90")
} else {
param.axes = TShape(args[2].operator ObjectRef());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyRot90Param>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
@@ -351,7 +351,7 @@ MXNET_REGISTER_API("_npi.array_split")
}
param.sections = 0;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::SplitParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
@@ -393,7 +393,7 @@ MXNET_REGISTER_API("_npi.dsplit")
}
param.sections = 0;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::SplitParam>(&attrs);
int num_outputs = 0;
@@ -431,7 +431,7 @@ MXNET_REGISTER_API("_npi.hsplit")
}
param.sections = 0;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::SplitParam>(&attrs);
int num_outputs = 0;
@@ -471,7 +471,7 @@ MXNET_REGISTER_API("_npi.vsplit")
}
param.sections = 0;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::SplitParam>(&attrs);
int num_outputs = 0;
@@ -560,7 +560,7 @@ MXNET_REGISTER_API("_npi.diagflat")
param.k = args[1].operator int();
int num_inputs = 1;
int num_outputs = 0;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyDiagflatParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
@@ -583,7 +583,7 @@ MXNET_REGISTER_API("_npi.squeeze")
}
int num_inputs = 1;
int num_outputs = 0;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::SqueezeParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
diff --git a/src/api/operator/numpy/np_moments_op.cc b/src/api/operator/numpy/np_moments_op.cc
index e4e9238..45dd45e 100644
--- a/src/api/operator/numpy/np_moments_op.cc
+++ b/src/api/operator/numpy/np_moments_op.cc
@@ -65,7 +65,7 @@ MXNET_REGISTER_API("_npi.std")
param.keepdims = args[4].operator bool();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyMomentsParam>(&attrs);
@@ -120,7 +120,7 @@ MXNET_REGISTER_API("_npi.var")
param.keepdims = args[4].operator bool();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyMomentsParam>(&attrs);
@@ -168,7 +168,7 @@ MXNET_REGISTER_API("_npi.average")
<< "weighted cannot be None";
param.weighted = args[4].operator bool();
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyWeightedAverageParam>(&attrs);
diff --git a/src/api/operator/numpy/np_nan_to_num_op.cc b/src/api/operator/numpy/np_nan_to_num_op.cc
index fadc4fe..65fd26e 100644
--- a/src/api/operator/numpy/np_nan_to_num_op.cc
+++ b/src/api/operator/numpy/np_nan_to_num_op.cc
@@ -53,7 +53,7 @@ MXNET_REGISTER_API("_npi.nan_to_num")
param.neginf = args[4].operator double();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyNanToNumParam>(&attrs);
diff --git a/src/api/operator/numpy/np_pad_op.cc b/src/api/operator/numpy/np_pad_op.cc
index 9c15ccc..317076d 100644
--- a/src/api/operator/numpy/np_pad_op.cc
+++ b/src/api/operator/numpy/np_pad_op.cc
@@ -73,7 +73,7 @@ MXNET_REGISTER_API("_npi.pad")
param.reflect_type = args[4].operator std::string();
}
attrs.op = op;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyPadParam>(&attrs);
int num_inputs = 1;
int num_outputs = 0;
diff --git a/src/api/operator/numpy/np_percentile_op.cc b/src/api/operator/numpy/np_percentile_op.cc
index 634ee09..196cca9 100644
--- a/src/api/operator/numpy/np_percentile_op.cc
+++ b/src/api/operator/numpy/np_percentile_op.cc
@@ -70,7 +70,7 @@ MXNET_REGISTER_API("_npi.percentile")
param.q_scalar = args[1].operator double();
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
int num_inputs = 1;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyPercentileParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
@@ -83,7 +83,7 @@ MXNET_REGISTER_API("_npi.percentile")
param.q_scalar = dmlc::nullopt;
NDArray* inputs[] = {args[0].operator mxnet::NDArray*(), args[1].operator mxnet::NDArray*()};
int num_inputs = 2;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyPercentileParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs, &num_outputs, outputs);
diff --git a/src/api/operator/numpy/np_repeat_op.cc b/src/api/operator/numpy/np_repeat_op.cc
index c79fb8b..c98a171 100644
--- a/src/api/operator/numpy/np_repeat_op.cc
+++ b/src/api/operator/numpy/np_repeat_op.cc
@@ -41,7 +41,7 @@ MXNET_REGISTER_API("_npi.repeats")
}
int num_inputs = 1;
int num_outputs = 0;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::RepeatsParam>(&attrs);
NDArray* inputs[] = {args[0].operator mxnet::NDArray*()};
diff --git a/src/api/operator/numpy/np_tensordot_op.cc b/src/api/operator/numpy/np_tensordot_op.cc
index 55c1314..0cc74d9 100644
--- a/src/api/operator/numpy/np_tensordot_op.cc
+++ b/src/api/operator/numpy/np_tensordot_op.cc
@@ -62,7 +62,7 @@ inline static void _npi_tensordot(runtime::MXNetArgs args,
param.b_axes_summed = Tuple<int>(adt[1]);
}
attrs.op = op;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::TensordotParam>(&attrs);
int num_outputs = 0;
int num_inputs = 2;
diff --git a/src/api/operator/numpy/np_unique_op.cc b/src/api/operator/numpy/np_unique_op.cc
index 288260f..a669025 100644
--- a/src/api/operator/numpy/np_unique_op.cc
+++ b/src/api/operator/numpy/np_unique_op.cc
@@ -44,7 +44,7 @@ MXNET_REGISTER_API("_npi.unique")
} else {
param.axis = args[4].operator int();
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyUniqueParam>(&attrs);
// inputs
diff --git a/src/api/operator/numpy/np_window_op.cc b/src/api/operator/numpy/np_window_op.cc
index 6b99c09..41c78cb 100644
--- a/src/api/operator/numpy/np_window_op.cc
+++ b/src/api/operator/numpy/np_window_op.cc
@@ -45,7 +45,7 @@ inline static void SetNumpyWindowsParam(runtime::MXNetArgs args,
} else {
param.dtype = String2MXNetTypeWithBool(args[1].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyWindowsParam>(&attrs);
if (args[2].type_code() != kNull) {
diff --git a/src/api/operator/numpy/random/np_choice_op.cc b/src/api/operator/numpy/random/np_choice_op.cc
index fe7b54d..bc5ebbc 100644
--- a/src/api/operator/numpy/random/np_choice_op.cc
+++ b/src/api/operator/numpy/random/np_choice_op.cc
@@ -70,7 +70,7 @@ MXNET_REGISTER_API("_npi.choice")
num_inputs++;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[4].type_code() != kNull) {
attrs.dict["ctx"] = args[4].operator std::string();
diff --git a/src/api/operator/numpy/random/np_exponential_op.cc b/src/api/operator/numpy/random/np_exponential_op.cc
index fbb1644..0c5b694 100644
--- a/src/api/operator/numpy/random/np_exponential_op.cc
+++ b/src/api/operator/numpy/random/np_exponential_op.cc
@@ -58,7 +58,7 @@ MXNET_REGISTER_API("_npi.exponential")
inputs[0] = args[0].operator mxnet::NDArray*();
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyExponentialParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs,
&num_outputs, outputs);
diff --git a/src/api/operator/numpy/random/np_laplace_op.cc b/src/api/operator/numpy/random/np_laplace_op.cc
index 57f770b..a3ff635 100644
--- a/src/api/operator/numpy/random/np_laplace_op.cc
+++ b/src/api/operator/numpy/random/np_laplace_op.cc
@@ -73,7 +73,7 @@ MXNET_REGISTER_API("_npi.laplace")
} else {
param.dtype = String2MXNetTypeWithBool(args[3].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::NumpyLaplaceParam>(&attrs);
if (args[4].type_code() != kNull) {
diff --git a/src/api/operator/numpy/random/np_location_scale_op.cc b/src/api/operator/numpy/random/np_location_scale_op.cc
index d163b0b..ffcb410 100644
--- a/src/api/operator/numpy/random/np_location_scale_op.cc
+++ b/src/api/operator/numpy/random/np_location_scale_op.cc
@@ -82,7 +82,7 @@ MXNET_REGISTER_API("_npi.gumbel")
}
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyLocationScaleParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs.data(),
&num_outputs, outputs);
@@ -137,7 +137,7 @@ MXNET_REGISTER_API("_npi.logistic")
}
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyLocationScaleParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs.data(),
&num_outputs, outputs);
diff --git a/src/api/operator/numpy/random/np_pareto_op.cc b/src/api/operator/numpy/random/np_pareto_op.cc
index 92e3645..f18cdfd 100644
--- a/src/api/operator/numpy/random/np_pareto_op.cc
+++ b/src/api/operator/numpy/random/np_pareto_op.cc
@@ -58,7 +58,7 @@ MXNET_REGISTER_API("_npi.pareto")
inputs[0] = args[0].operator mxnet::NDArray*();
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyParetoParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs,
&num_outputs, outputs);
diff --git a/src/api/operator/numpy/random/np_power_op.cc b/src/api/operator/numpy/random/np_power_op.cc
index 12a6217..4f0cb55 100644
--- a/src/api/operator/numpy/random/np_power_op.cc
+++ b/src/api/operator/numpy/random/np_power_op.cc
@@ -58,7 +58,7 @@ MXNET_REGISTER_API("_npi.powerd")
inputs[0] = args[0].operator mxnet::NDArray*();
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyPowerParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs,
&num_outputs, outputs);
diff --git a/src/api/operator/numpy/random/np_rayleigh_op.cc b/src/api/operator/numpy/random/np_rayleigh_op.cc
index 428e433..5f602af 100644
--- a/src/api/operator/numpy/random/np_rayleigh_op.cc
+++ b/src/api/operator/numpy/random/np_rayleigh_op.cc
@@ -58,7 +58,7 @@ MXNET_REGISTER_API("_npi.rayleigh")
inputs[0] = args[0].operator mxnet::NDArray*();
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyRayleighParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs,
&num_outputs, outputs);
diff --git a/src/api/operator/numpy/random/np_weibull_op.cc b/src/api/operator/numpy/random/np_weibull_op.cc
index ef3b7e6..18a2918 100644
--- a/src/api/operator/numpy/random/np_weibull_op.cc
+++ b/src/api/operator/numpy/random/np_weibull_op.cc
@@ -58,7 +58,7 @@ MXNET_REGISTER_API("_npi.weibull")
inputs[0] = args[0].operator mxnet::NDArray*();
num_inputs = 1;
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
SetAttrDict<op::NumpyWeibullParam>(&attrs);
auto ndoutputs = Invoke(op, &attrs, num_inputs, inputs,
&num_outputs, outputs);
diff --git a/src/api/operator/random/np_gamma_op.cc b/src/api/operator/random/np_gamma_op.cc
index 44aeb44..8bf3717 100644
--- a/src/api/operator/random/np_gamma_op.cc
+++ b/src/api/operator/random/np_gamma_op.cc
@@ -91,7 +91,7 @@ MXNET_REGISTER_API("_npi.gamma")
NDArray* out = args[5].operator mxnet::NDArray*();
NDArray** outputs = out == nullptr ? nullptr : &out;
int num_outputs = out != nullptr;
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[3].type_code() != kNull) {
attrs.dict["ctx"] = args[3].operator std::string();
diff --git a/src/api/operator/random/np_normal_op.cc b/src/api/operator/random/np_normal_op.cc
index bd39115..d78f50f 100644
--- a/src/api/operator/random/np_normal_op.cc
+++ b/src/api/operator/random/np_normal_op.cc
@@ -77,7 +77,7 @@ MXNET_REGISTER_API("_npi.normal")
} else {
param.dtype = String2MXNetTypeWithBool(args[4].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[3].type_code() != kNull) {
attrs.dict["ctx"] = args[3].operator std::string();
diff --git a/src/api/operator/random/np_uniform_op.cc b/src/api/operator/random/np_uniform_op.cc
index 4cbc599..41e830f 100644
--- a/src/api/operator/random/np_uniform_op.cc
+++ b/src/api/operator/random/np_uniform_op.cc
@@ -76,7 +76,7 @@ MXNET_REGISTER_API("_npi.uniform")
} else {
param.dtype = String2MXNetTypeWithBool(args[4].operator std::string());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
if (args[3].type_code() != kNull) {
attrs.dict["ctx"] = args[3].operator std::string();
diff --git a/src/api/operator/tensor/matrix_op.cc b/src/api/operator/tensor/matrix_op.cc
index 6134428..5b275d5 100644
--- a/src/api/operator/tensor/matrix_op.cc
+++ b/src/api/operator/tensor/matrix_op.cc
@@ -79,7 +79,7 @@ MXNET_REGISTER_API("_npi.tile")
} else {
param.reps = Tuple<int>(args[1].operator ObjectRef());
}
- attrs.parsed = std::move(param);
+ attrs.parsed = param;
attrs.op = op;
SetAttrDict<op::TileParam>(&attrs);
int num_outputs = 0;
diff --git a/src/c_api/c_api.cc b/src/c_api/c_api.cc
index 53ff1e4..3d73ceb 100644
--- a/src/c_api/c_api.cc
+++ b/src/c_api/c_api.cc
@@ -236,13 +236,13 @@ void CustomFComputeDispatcher(const std::string op_name,
return static_cast<void*>((*cpualloc)(size));
};
- typedef decltype(gpu_alloc) alloc_type_gpu;
+ using alloc_type_gpu = decltype(gpu_alloc);
auto gpu_malloc = [](void* _gpu_alloc, int size) {
alloc_type_gpu* gpualloc = static_cast<alloc_type_gpu*>(_gpu_alloc);
return static_cast<void*>((*gpualloc)(size));
};
- typedef decltype(sparse_alloc) alloc_type_sparse;
+ using alloc_type_sparse = decltype(sparse_alloc);
auto sparse_malloc = [](void* _sparse_alloc, int index, int indices_len, int idxptr_len,
void** data, int64_t** indices, int64_t** indptr) {
alloc_type_sparse* sparsealloc = static_cast<alloc_type_sparse*>(_sparse_alloc);
@@ -1209,7 +1209,7 @@ void registerPasses(void *lib, int verbose) {
// create no-capture lambda so that we can cast it to function pointer
// lambda with captures cannot be cast to function pointer and pass to lib_api.h
// this needs to be a lambda function so that we can do the decltype cast
- typedef decltype(ndarray_alloc) alloc_type_ndarray;
+ using alloc_type_ndarray = decltype(ndarray_alloc);
auto ndarray_malloc = [](const void* _ndarray_alloc, const int64_t* shapes, int num_shapes,
const char* dev_str, int dev_id, int dtype, const char* name,
int isArg, void** data) {
@@ -2160,7 +2160,7 @@ int MXDataIterCreateIter(DataIterCreator creator,
iter = e->body();
std::vector<std::pair<std::string, std::string> > kwargs;
for (uint32_t i = 0; i < num_param; ++i) {
- kwargs.push_back({std::string(keys[i]), std::string(vals[i])});
+ kwargs.emplace_back(std::string(keys[i]), std::string(vals[i]));
}
iter->Init(kwargs);
*out = iter;
@@ -2287,7 +2287,7 @@ int MXDatasetCreateDataset(DatasetCreator handle,
DatasetReg *e = static_cast<DatasetReg *>(handle);
std::vector<std::pair<std::string, std::string> > kwargs;
for (uint32_t i = 0; i < num_param; ++i) {
- kwargs.push_back({std::string(keys[i]), std::string(vals[i])});
+ kwargs.emplace_back(std::string(keys[i]), std::string(vals[i]));
}
dataset = e->body(kwargs);
*out = new std::shared_ptr<Dataset>(dataset);
@@ -2304,7 +2304,7 @@ int MXDatasetGetDatasetInfo(DatasetCreator creator,
DatasetReg *e = static_cast<DatasetReg *>(creator);
return MXAPIGetFunctionRegInfo(e, name, description, num_args,
arg_names, arg_type_infos, arg_descriptions,
- NULL);
+ nullptr);
}
int MXDatasetFree(DatasetHandle handle) {
@@ -2375,7 +2375,7 @@ int MXBatchifyFunctionCreateFunction(BatchifyFunctionCreator handle,
BatchifyFunctionReg *e = static_cast<BatchifyFunctionReg *>(handle);
std::vector<std::pair<std::string, std::string> > kwargs;
for (uint32_t i = 0; i < num_param; ++i) {
- kwargs.push_back({std::string(keys[i]), std::string(vals[i])});
+ kwargs.emplace_back(std::string(keys[i]), std::string(vals[i]));
}
bf = e->body(kwargs);
*out = new BatchifyFunctionPtr(bf);
@@ -2392,7 +2392,7 @@ int MXBatchifyFunctionGetFunctionInfo(BatchifyFunctionCreator creator,
BatchifyFunctionReg *e = static_cast<BatchifyFunctionReg *>(creator);
return MXAPIGetFunctionRegInfo(e, name, description, num_args,
arg_names, arg_type_infos, arg_descriptions,
- NULL);
+ nullptr);
}
int MXBatchifyFunctionInvoke(BatchifyFunctionHandle handle,
int batch_size,
@@ -3149,8 +3149,8 @@ int MXNDArrayCreateFromSharedMemEx(int shared_pid, int shared_id, const int *sha
API_END();
}
-typedef Engine::VarHandle VarHandle;
-typedef Engine::CallbackOnComplete CallbackOnComplete;
+using VarHandle = Engine::VarHandle;
+using CallbackOnComplete = Engine::CallbackOnComplete;
void AssertValidNumberVars(int num_const_vars, int num_mutable_vars) {
CHECK_GE(num_const_vars, 0) << "Non-negative number of const vars expected.";
diff --git a/src/c_api/c_api_profile.cc b/src/c_api/c_api_profile.cc
index d0ad6a1..79d11b9 100644
--- a/src/c_api/c_api_profile.cc
+++ b/src/c_api/c_api_profile.cc
@@ -61,7 +61,7 @@ class ProfilingThreadData {
/*!
* \brief Constructor, nothrow
*/
- inline ProfilingThreadData() noexcept {}
+ inline ProfilingThreadData() = default;
/*!
* \brief Retreive ProfileTask object of the given name, or create if it doesn't exist
diff --git a/src/c_api/c_api_symbolic.cc b/src/c_api/c_api_symbolic.cc
index 3052256..06f956b 100644
--- a/src/c_api/c_api_symbolic.cc
+++ b/src/c_api/c_api_symbolic.cc
@@ -1066,7 +1066,7 @@ int MXQuantizeSymbol(SymbolHandle sym_handle,
g = ApplyPass(std::move(g), "QuantizeGraph");
const auto& calib_nodes = g.GetAttr<std::vector<std::string>>("calib_nodes");
MXAPIThreadLocalEntry<> *ret = MXAPIThreadLocalStore<>::Get();
- ret->ret_vec_str = std::move(calib_nodes);
+ ret->ret_vec_str = calib_nodes;
*out_num_calib_names = ret->ret_vec_str.size();
ret->ret_vec_charp.clear();
ret->ret_vec_charp.reserve(ret->ret_vec_str.size());
@@ -1130,21 +1130,21 @@ static void _UpdateSymDTypeAttrs(
// Update args to have the right dtype attrs
if (model_params.size() > 0) {
// if model params provided, set dtype only for model params
- for (size_t i = 0; i < args.size(); ++i) {
- const std::string& node_name = args[i]->attrs.name;
+ for (const auto & arg : args) {
+ const std::string& node_name = arg->attrs.name;
auto it_model_params = model_params.find(node_name);
auto it_with_dtype = node_name_dtype_map.find(node_name);
auto it_without_dtype = node_without_dtype_map.find(node_name);
if (it_model_params != model_params.end()) {
// need to update __dtype__ attribute if already set, else set it
if (it_with_dtype != node_name_dtype_map.end()) {
- args[i]->attrs.dict[dtype_keyword] =
+ arg->attrs.dict[dtype_keyword] =
std::to_string(it_with_dtype->second);
} else {
CHECK(it_without_dtype != node_without_dtype_map.end())
<< "make sure all nodes without dtype have properly been added "
"in node_without_dtype_map";
- args[i]->attrs.dict[dtype_keyword] =
+ arg->attrs.dict[dtype_keyword] =
std::to_string(it_without_dtype->second);
}
}
@@ -1152,12 +1152,12 @@ static void _UpdateSymDTypeAttrs(
} else {
// if model params not provided, update __dtype__ for all inputs,
// which already had it set, don't touch the rest
- for (size_t i = 0; i < args.size(); ++i) {
- auto it = node_name_dtype_map.find(args[i]->attrs.name);
+ for (const auto & arg : args) {
+ auto it = node_name_dtype_map.find(arg->attrs.name);
if (it != node_name_dtype_map.end()) {
- if (args[i]->attrs.dict.find(dtype_keyword) !=
- args[i]->attrs.dict.end()) {
- args[i]->attrs.dict[dtype_keyword] = std::to_string(it->second);
+ if (arg->attrs.dict.find(dtype_keyword) !=
+ arg->attrs.dict.end()) {
+ arg->attrs.dict[dtype_keyword] = std::to_string(it->second);
}
}
}
@@ -1256,7 +1256,7 @@ int MXReducePrecisionSymbol(SymbolHandle sym_handle,
const nnvm::DTypeVector &inferred_dtypes =
g.GetAttr<nnvm::DTypeVector>("dtype");
- g.attrs["inferred_dtypes"] = std::make_shared<dmlc::any>(std::move(inferred_dtypes));
+ g.attrs["inferred_dtypes"] = std::make_shared<dmlc::any>(inferred_dtypes);
g.attrs["target_dtype"] = std::make_shared<nnvm::any>(target_dt);
if (cast_optional_params) {
diff --git a/src/engine/naive_engine.cc b/src/engine/naive_engine.cc
index 5e51199..89f6b4d 100644
--- a/src/engine/naive_engine.cc
+++ b/src/engine/naive_engine.cc
@@ -22,6 +22,7 @@
* \file naive_engine.cc
* \brief Implementation of NaiveEngine
*/
+#include <memory>
#include <vector>
#include <atomic>
#include <thread>
@@ -67,8 +68,8 @@ class NaiveEngine final : public Engine {
objpool_var_ref_ = common::ObjectPool<NaiveVar>::_GetSharedRef();
}
// virtual destructor
- virtual ~NaiveEngine() {
#if MXNET_USE_CUDA
+ ~NaiveEngine() override {
LOG(INFO) << "Engine shutdown";
for (size_t i = 0; i < streams_.size(); ++i) {
if (streams_[i] != nullptr) {
@@ -83,8 +84,10 @@ class NaiveEngine final : public Engine {
aux_streams_[i] = nullptr;
}
}
-#endif
}
+#else
+ ~NaiveEngine() override = default;
+#endif
void Stop() override {
}
@@ -125,10 +128,10 @@ class NaiveEngine final : public Engine {
if (opr->profiling) {
std::unique_ptr<profiler::ProfileOperator::Attributes> attrs;
if (profiler->AggregateEnabled()) {
- attrs.reset(new profiler::ProfileOperator::Attributes());
+ attrs = std::make_unique<profiler::ProfileOperator::Attributes>();
}
- opr->opr_profile.reset(new profiler::ProfileOperator(opr->opr_name.c_str(),
- attrs.release()));
+ opr->opr_profile = std::make_unique<profiler::ProfileOperator>(opr->opr_name.c_str(),
+ attrs.release());
opr->opr_profile->startForDevice(exec_ctx.dev_type, exec_ctx.dev_id);
}
opr->fn(ctx, on_complete);
@@ -175,9 +178,10 @@ class NaiveEngine final : public Engine {
opr->profiling = profiling;
std::unique_ptr<profiler::ProfileOperator::Attributes> attrs;
if (profiler->AggregateEnabled()) {
- attrs.reset(new profiler::ProfileOperator::Attributes());
+ attrs = std::make_unique<profiler::ProfileOperator::Attributes>();
}
- opr->opr_profile.reset(new profiler::ProfileOperator(opr->opr_name.c_str(), attrs.release()));
+ opr->opr_profile = std::make_unique<profiler::ProfileOperator>(opr->opr_name.c_str(),
+ attrs.release());
opr->opr_profile->startForDevice(exec_ctx.dev_type, exec_ctx.dev_id);
}
if (exec_ctx.dev_mask() == gpu::kDevMask) {
diff --git a/src/engine/threaded_engine_perdevice.cc b/src/engine/threaded_engine_perdevice.cc
index 2184d78..81494ec 100644
--- a/src/engine/threaded_engine_perdevice.cc
+++ b/src/engine/threaded_engine_perdevice.cc
@@ -28,6 +28,8 @@
#include <dmlc/parameter.h>
#include <dmlc/concurrency.h>
#include <dmlc/thread_group.h>
+
+#include <memory>
#include "../initialize.h"
#include "./threaded_engine.h"
#include "./thread_pool.h"
@@ -55,7 +57,7 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
ThreadedEnginePerDevice() noexcept(false) {
this->Start();
}
- ~ThreadedEnginePerDevice() noexcept(false) {
+ ~ThreadedEnginePerDevice() noexcept(false) override {
this->StopNoWait();
}
@@ -82,12 +84,12 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
gpu_copy_nthreads_ = dmlc::GetEnv("MXNET_GPU_COPY_NTHREADS", 2);
// create CPU task
int cpu_priority_nthreads = dmlc::GetEnv("MXNET_CPU_PRIORITY_NTHREADS", 4);
- cpu_priority_worker_.reset(new ThreadWorkerBlock<kPriorityQueue>());
- cpu_priority_worker_->pool.reset(new ThreadPool(
+ cpu_priority_worker_ = std::make_unique<ThreadWorkerBlock<kPriorityQueue>>();
+ cpu_priority_worker_->pool = std::make_unique<ThreadPool>(
cpu_priority_nthreads,
[this](std::shared_ptr<dmlc::ManualEvent> ready_event) {
this->CPUWorker(Context(), cpu_priority_worker_.get(), ready_event);
- }, true));
+ }, true);
// GPU tasks will be created lazily
}
@@ -113,10 +115,10 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
auto ptr =
cpu_normal_workers_.Get(dev_id, [this, ctx, nthread]() {
auto blk = new ThreadWorkerBlock<kWorkerQueue>();
- blk->pool.reset(new ThreadPool(nthread,
+ blk->pool = std::make_unique<ThreadPool>(nthread,
[this, ctx, blk](std::shared_ptr<dmlc::ManualEvent> ready_event) {
this->CPUWorker(ctx, blk, ready_event);
- }, true));
+ }, true);
return blk;
});
if (ptr) {
@@ -139,12 +141,12 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
// Signify to kernel that GPU is being used, so reserve cores as necessary
OpenMP::Get()->set_reserve_cores(GetReserveCoreCount(true));
auto blk = new ThreadWorkerBlock<kCopyQueue>();
- blk->pool.reset(new ThreadPool(
+ blk->pool = std::make_unique<ThreadPool>(
nthread,
[this, ctx, is_copy, blk]
(std::shared_ptr<dmlc::ManualEvent> ready_event) {
this->GPUWorker(ctx, is_copy, blk, ready_event);
- }, true));
+ }, true);
return blk;
});
if (ptr) {
@@ -162,12 +164,12 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
// Signify to kernel that GPU is being used, so reserve cores as necessary
OpenMP::Get()->set_reserve_cores(GetReserveCoreCount(true));
auto blk = new ThreadWorkerBlock<kPriorityQueue>();
- blk->pool.reset(new ThreadPool(
+ blk->pool = std::make_unique<ThreadPool>(
nthread,
[this, ctx, is_copy, blk]
(std::shared_ptr<dmlc::ManualEvent> ready_event) {
this->GPUWorker(ctx, is_copy, blk, ready_event);
- }, true));
+ }, true);
return blk;
});
if (ptr) {
@@ -179,12 +181,12 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
// Signify to kernel that GPU is being used, so reserve cores as necessary
OpenMP::Get()->set_reserve_cores(GetReserveCoreCount(true));
auto blk = new ThreadWorkerBlock<kWorkerQueue>();
- blk->pool.reset(new ThreadPool(
+ blk->pool = std::make_unique<ThreadPool>(
nthread,
[this, ctx, is_copy, blk]
(std::shared_ptr<dmlc::ManualEvent> ready_event) {
this->GPUWorker(ctx, is_copy, blk, ready_event);
- }, true));
+ }, true);
return blk;
});
if (ptr) {
@@ -211,7 +213,7 @@ class ThreadedEnginePerDevice : public ThreadedEngine {
// constructor
ThreadWorkerBlock() = default;
// destructor
- ~ThreadWorkerBlock() noexcept(false) {}
+ ~ThreadWorkerBlock() = default;
};
/*! \brief whether this is a worker thread. */
diff --git a/src/engine/threaded_engine_pooled.cc b/src/engine/threaded_engine_pooled.cc
index c6eb995..1304594 100644
--- a/src/engine/threaded_engine_pooled.cc
+++ b/src/engine/threaded_engine_pooled.cc
@@ -27,6 +27,7 @@
#include <dmlc/logging.h>
#include <dmlc/concurrency.h>
#include <cassert>
+#include <memory>
#include <utility>
#include "./threaded_engine.h"
#include "./thread_pool.h"
@@ -50,7 +51,7 @@ class ThreadedEnginePooled : public ThreadedEngine {
this->Start();
}
- ~ThreadedEnginePooled() noexcept(false) {
+ ~ThreadedEnginePooled() noexcept(false) override {
StopNoWait();
}
@@ -71,17 +72,17 @@ class ThreadedEnginePooled : public ThreadedEngine {
}
void Start() override {
- streams_.reset(new StreamManager<kMaxNumGpus, kNumStreamsPerGpu>());
+ streams_ = std::make_unique<StreamManager<kMaxNumGpus, kNumStreamsPerGpu>>();
task_queue_.reset(new dmlc::ConcurrentBlockingQueue<OprBlock*>());
io_task_queue_.reset(new dmlc::ConcurrentBlockingQueue<OprBlock*>());
- thread_pool_.reset(new ThreadPool(kNumWorkingThreads,
+ thread_pool_ = std::make_unique<ThreadPool>(kNumWorkingThreads,
[this](std::shared_ptr<dmlc::ManualEvent> ready_event) {
ThreadWorker(task_queue_, ready_event); },
- true));
- io_thread_pool_.reset(new ThreadPool(1,
+ true);
+ io_thread_pool_ = std::make_unique<ThreadPool>(1,
[this](std::shared_ptr<dmlc::ManualEvent> ready_event) {
ThreadWorker(io_task_queue_, ready_event); },
- true));
+ true);
}
protected:
diff --git a/src/imperative/attach_op_execs_pass.cc b/src/imperative/attach_op_execs_pass.cc
index 8f47bc2..d065aff 100644
--- a/src/imperative/attach_op_execs_pass.cc
+++ b/src/imperative/attach_op_execs_pass.cc
@@ -27,6 +27,8 @@
#include <mxnet/op_attr_types.h>
#include <mxnet/graph_attr_types.h>
#include <nnvm/graph_attr_types.h>
+
+#include <utility>
#include "../common/utils.h"
#include "../common/exec_utils.h"
#include "./exec_pass.h"
@@ -45,8 +47,8 @@ namespace exec {
// FComputeExecutor and FStatefulComputeExecutor inherit from this class
class StorageFallbackOpExecutor : public OpExecutor {
public:
- explicit StorageFallbackOpExecutor(const std::vector<uint32_t> &mutate_idx)
- : mutate_idx_(mutate_idx) {}
+ explicit StorageFallbackOpExecutor(std::vector<uint32_t> mutate_idx)
+ : mutate_idx_(std::move(mutate_idx)) {}
void Setup() override {
init_ = false;
@@ -136,12 +138,12 @@ class StatefulComputeExecutor : public StorageFallbackOpExecutor {
return state_;
}
- explicit StatefulComputeExecutor(const OpStatePtr& state,
- const FStatefulCompute& fcompute,
+ explicit StatefulComputeExecutor(OpStatePtr state,
+ FStatefulCompute fcompute,
ExecType exec_type,
const std::vector<uint32_t> &mutate_idx)
: StorageFallbackOpExecutor(mutate_idx),
- state_(state), fcompute_(fcompute), exec_type_(exec_type) {}
+ state_(std::move(state)), fcompute_(std::move(fcompute)), exec_type_(exec_type) {}
private:
OpStatePtr state_;
@@ -182,11 +184,12 @@ class StatefulComputeExExecutor : public OpExecutor {
return state_;
}
- explicit StatefulComputeExExecutor(const NodeAttrs& attrs,
- const OpStatePtr& state,
- const FStatefulComputeEx& fcompute,
+ explicit StatefulComputeExExecutor(NodeAttrs attrs,
+ OpStatePtr state,
+ FStatefulComputeEx fcompute,
ExecType exec_type)
- : attrs_(attrs), state_(state), fcompute_(fcompute), exec_type_(exec_type) {}
+ : attrs_(std::move(attrs)), state_(std::move(state)), fcompute_(std::move(fcompute)),
+ exec_type_(exec_type) {}
private:
NodeAttrs attrs_;
@@ -214,10 +217,10 @@ class FComputeExecutor : public StorageFallbackOpExecutor {
return exec_type_;
}
- explicit FComputeExecutor(const NodeAttrs& attrs, FCompute fcompute,
+ explicit FComputeExecutor(NodeAttrs attrs, FCompute fcompute,
ExecType exec_type, const std::vector<uint32_t> &mutate_idx)
: StorageFallbackOpExecutor(mutate_idx),
- attrs_(attrs), fcompute_(fcompute), exec_type_(exec_type) {
+ attrs_(std::move(attrs)), fcompute_(std::move(fcompute)), exec_type_(exec_type) {
}
private:
@@ -250,9 +253,9 @@ class FComputeExExecutor : public OpExecutor {
return exec_type_;
}
- explicit FComputeExExecutor(const NodeAttrs& attrs, FComputeEx fcompute,
+ explicit FComputeExExecutor(NodeAttrs attrs, FComputeEx fcompute,
ExecType exec_type)
- : attrs_(attrs), fcompute_(fcompute), exec_type_(exec_type) {
+ : attrs_(std::move(attrs)), fcompute_(std::move(fcompute)), exec_type_(exec_type) {
}
private:
diff --git a/src/imperative/cached_op.cc b/src/imperative/cached_op.cc
index 7b3a5d3..e0f8329 100644
--- a/src/imperative/cached_op.cc
+++ b/src/imperative/cached_op.cc
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+#include <memory>
#include <unordered_set>
#include <iostream>
#include "./imperative_utils.h"
@@ -87,8 +88,7 @@ CachedOp::CachedOp(
SetRefCounts(&fwd_graph_, full_graph_);
}
-CachedOp::~CachedOp() {
-}
+CachedOp::~CachedOp() = default;
std::vector<nnvm::NodeEntry> CachedOp::Gradient(
const nnvm::ObjectPtr& node,
@@ -1286,7 +1286,7 @@ void CachedOpParamParser(nnvm::NodeAttrs* attrs) {
std::vector<std::pair<std::string, std::string> > flags;
for (const auto& attr : attrs->dict)
flags.emplace_back(attr.first, attr.second);
- attrs->parsed = CachedOpPtr(new CachedOp(sym, flags));
+ attrs->parsed = std::make_shared<CachedOp>(sym, flags);
}
}
diff --git a/src/imperative/cached_op_threadsafe.cc b/src/imperative/cached_op_threadsafe.cc
index 744daf0..7d93eb84 100644
--- a/src/imperative/cached_op_threadsafe.cc
+++ b/src/imperative/cached_op_threadsafe.cc
@@ -250,7 +250,7 @@ void CachedOpThreadSafeParamParser(nnvm::NodeAttrs* attrs) {
throw dmlc::ParamError(os.str());
}
}
-CachedOpThreadSafe::~CachedOpThreadSafe() {}
+CachedOpThreadSafe::~CachedOpThreadSafe() = default;
NNVM_REGISTER_OP(_CachedOpThreadSafe)
.set_num_inputs([](const NodeAttrs& attrs) {
diff --git a/src/imperative/eliminate_common_expr_pass.cc b/src/imperative/eliminate_common_expr_pass.cc
index 805b6ac..a0156da 100644
--- a/src/imperative/eliminate_common_expr_pass.cc
+++ b/src/imperative/eliminate_common_expr_pass.cc
@@ -184,10 +184,10 @@ void EliminateCommonNodes(Graph* g,
// insert Copy nodes as appropriate
const Op* copy_op = Op::Get("_copy");
nnvm::NodeEntryMap<size_t> unique_outputs;
- for (size_t i = 0; i < g->outputs.size(); ++i) {
- auto kv = unique_outputs.find(g->outputs[i]);
+ for (auto & output : g->outputs) {
+ auto kv = unique_outputs.find(output);
if (kv == unique_outputs.end()) {
- unique_outputs.emplace(g->outputs[i], 0);
+ unique_outputs.emplace(output, 0);
} else {
ObjectPtr copy_node = Node::Create();
std::ostringstream os;
@@ -196,7 +196,7 @@ void EliminateCommonNodes(Graph* g,
copy_node->attrs.op = copy_op;
copy_node->attrs.name = os.str();
copy_node->inputs.emplace_back(kv->first);
- g->outputs[i] = nnvm::NodeEntry{copy_node, 0, 0};
+ output = nnvm::NodeEntry{copy_node, 0, 0};
}
}
}
diff --git a/src/imperative/imperative.cc b/src/imperative/imperative.cc
index 45fdf54..9e162d4 100644
--- a/src/imperative/imperative.cc
+++ b/src/imperative/imperative.cc
@@ -119,11 +119,11 @@ OpStatePtr Imperative::Invoke(
SetWriteInplaceReq(inputs, outputs, &req);
OpStatePtr ret = InvokeOp(ctx, attrs, inputs, outputs, req, dispatch_mode);
// the followinng loop is used for finding out the correct shape when some shapes are dynamic
- for (size_t i = 0; i < outputs.size(); i++) {
- if (!shape_is_known(outputs[i]->shape())) {
+ for (auto output : outputs) {
+ if (!shape_is_known(output->shape())) {
// the WaitToRead overhead here does not seem to be avoidable
- outputs[i]->WaitToRead();
- outputs[i]->SetShapeFromChunk();
+ output->WaitToRead();
+ output->SetShapeFromChunk();
}
}
return ret;
diff --git a/src/initialize.cc b/src/initialize.cc
index a352c0a..784e54f 100644
--- a/src/initialize.cc
+++ b/src/initialize.cc
@@ -23,7 +23,6 @@
* \brief initialize mxnet library
*/
#include "initialize.h"
-#include <signal.h>
#include <dmlc/logging.h>
#include <mxnet/engine.h>
#include "./engine/openmp.h"
@@ -34,7 +33,6 @@
#include "common/utils.h"
#include "engine/openmp.h"
-
#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
#include <windows.h>
/*!
@@ -57,6 +55,9 @@ void win_err(char **err) {
#include <dlfcn.h>
#endif
+#include <csignal>
+
+
namespace mxnet {
#if MXNET_USE_SIGNAL_HANDLER && DMLC_LOG_STACK_TRACE
diff --git a/src/io/batchify.cc b/src/io/batchify.cc
index 27ed850..01d93f5 100644
--- a/src/io/batchify.cc
+++ b/src/io/batchify.cc
@@ -73,8 +73,8 @@ class GroupBatchify : public BatchifyFunction {
}
}
- virtual bool Batchify(const std::vector<std::vector<NDArray> >& inputs,
- std::vector<NDArray>* outputs) {
+ bool Batchify(const std::vector<std::vector<NDArray> >& inputs,
+ std::vector<NDArray>* outputs) override {
auto bs = inputs.size();
CHECK_GT(bs, 0) << "BatchifyFunction should handle at lease 1 sample";
auto out_size = inputs[0].size();
@@ -84,8 +84,8 @@ class GroupBatchify : public BatchifyFunction {
for (size_t i = 0; i < out_size; ++i) {
std::vector<std::vector<NDArray> > inp;
inp.reserve(inputs.size());
- for (size_t j = 0; j < inputs.size(); ++j) {
- std::vector<NDArray> curr({inputs[j][i]});
+ for (const auto & input : inputs) {
+ std::vector<NDArray> curr({input[i]});
inp.emplace_back(curr);
}
std::vector<NDArray> tmp;
@@ -128,8 +128,8 @@ class StackBatchify : public BatchifyFunction {
param_.InitAllowUnknown(kwargs);
}
- virtual bool Batchify(const std::vector<std::vector<NDArray> >& inputs,
- std::vector<NDArray>* outputs) {
+ bool Batchify(const std::vector<std::vector<NDArray> >& inputs,
+ std::vector<NDArray>* outputs) override {
auto out_size = SanityCheck(inputs);
auto bs = inputs.size();
outputs->resize(out_size);
@@ -235,8 +235,8 @@ class PadBatchify : public BatchifyFunction {
param_.InitAllowUnknown(kwargs);
}
- virtual bool Batchify(const std::vector<std::vector<NDArray> >& inputs,
- std::vector<NDArray>* outputs) {
+ bool Batchify(const std::vector<std::vector<NDArray> >& inputs,
+ std::vector<NDArray>* outputs) override {
auto bs = inputs.size();
CHECK_GT(bs, 0) << "BatchifyFunction should handle at lease 1 sample";
auto out_size = inputs[0].size();
diff --git a/src/io/dataloader.cc b/src/io/dataloader.cc
index 947c262..4775447 100644
--- a/src/io/dataloader.cc
+++ b/src/io/dataloader.cc
@@ -63,13 +63,11 @@ DMLC_REGISTER_PARAMETER(ThreadedDataLoaderParam);
template<typename DType = real_t>
class ThreadedDataLoader : public IIterator<TBlobBatch> {
public:
- ThreadedDataLoader() {
- }
+ ThreadedDataLoader() = default;
// destructor
- virtual ~ThreadedDataLoader(void) {
- }
+ ~ThreadedDataLoader() override = default;
// constructor
- void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
int maxthread, threadget;
#pragma omp parallel
@@ -90,15 +88,15 @@ class ThreadedDataLoader : public IIterator<TBlobBatch> {
this->BeforeFirst();
}
// before first
- void BeforeFirst(void) {
+ void BeforeFirst() override {
sampler_->BeforeFirst();
}
- int64_t GetLenHint(void) const {
+ int64_t GetLenHint() const override {
return sampler_->GetLenHint();
}
- bool Next(void) {
+ bool Next() override {
bool has_next = sampler_->Next();
if (!has_next) return false;
auto samples = sampler_->Value();
@@ -152,7 +150,7 @@ class ThreadedDataLoader : public IIterator<TBlobBatch> {
return true;
}
- const TBlobBatch &Value(void) const {
+ const TBlobBatch &Value() const override {
return out_;
}
diff --git a/src/io/dataset.cc b/src/io/dataset.cc
index 4c47f44..ba548c9 100644
--- a/src/io/dataset.cc
+++ b/src/io/dataset.cc
@@ -29,6 +29,7 @@
#include <mxnet/ndarray.h>
#include <mxnet/tensor_blob.h>
+#include <memory>
#include <string>
#include <vector>
#include <algorithm>
@@ -75,11 +76,11 @@ class RecordFileDataset final : public Dataset {
delete idx_stream;
}
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return idx_.size();
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* ret) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* ret) override {
ret->resize(1);
auto& out = (*ret)[0];
static thread_local std::unique_ptr<dmlc::Stream> stream;
@@ -193,11 +194,11 @@ class ImageRecordFileDataset : public Dataset {
base_ = std::make_shared<RecordFileDataset>(kwargs);
}
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return base_->GetLen();
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* ret) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* ret) override {
CHECK_LT(idx, GetLen());
std::vector<NDArray> raw;
if (!base_->GetItem(idx, &raw)) return false;
@@ -292,11 +293,11 @@ class ImageSequenceDataset final : public Dataset {
img_list_ = dmlc::Split(param_.img_list, param_.path_sep);
}
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return img_list_.size();
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* ret) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* ret) override {
#if MXNET_USE_OPENCV
CHECK_LT(idx, img_list_.size())
<< "GetItem index: " << idx << " out of bound: " << img_list_.size();
@@ -355,11 +356,11 @@ class NDArrayDataset final : public Dataset {
size_ = data_.shape().begin()[0];
}
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return size_;
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* rets) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* rets) override {
CHECK_LT(idx, size_)
<< "GetItem index: " << idx << " out of bound: " << size_;
rets->resize(1);
@@ -430,11 +431,11 @@ class GroupDataset final : public Dataset {
}
}
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return size_;
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* ret) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* ret) override {
CHECK_LT(idx, size_)
<< "GetItem index: " << idx << " out of bound: " << size_;
ret->clear();
@@ -485,11 +486,11 @@ class IndexedDataset final : public Dataset {
base_data_ = *static_cast<std::shared_ptr<Dataset>*>(reinterpret_cast<void*>(param_.base));
}
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return param_.indices.ndim();
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* ret) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* ret) override {
CHECK_GT(param_.indices.ndim(), idx) << "IndexError: " << idx
<< " from total: " << param_.indices.ndim();
auto new_idx = param_.indices[idx];
@@ -545,15 +546,15 @@ class LazyTransformDataset final : public Dataset {
this->pass_through_indices_ = other.pass_through_indices_;
this->use_input_indices_ = other.use_input_indices_;
this->num_outputs_ = other.num_outputs_;
- this->cached_op_ = NaiveCachedOpPtr(new NaiveCachedOp(
- other.cached_op_->sym_, other.cached_op_->flags_));
+ this->cached_op_ = std::make_shared<NaiveCachedOp>(
+ other.cached_op_->sym_, other.cached_op_->flags_);
this->base_data_ = other.base_data_;
}
explicit LazyTransformDataset(const std::vector<std::pair<std::string, std::string> >& kwargs) {
param_.InitAllowUnknown(kwargs);
auto op = *static_cast<CachedOpPtr*>(reinterpret_cast<void*>(param_.cached_op));
- cached_op_ = NaiveCachedOpPtr(new NaiveCachedOp(op->sym_, op->flags_));
+ cached_op_ = std::make_shared<NaiveCachedOp>(op->sym_, op->flags_);
base_data_ = *static_cast<std::shared_ptr<Dataset>*>(reinterpret_cast<void*>(param_.dataset));
// use first item to calculate size info
@@ -596,14 +597,13 @@ class LazyTransformDataset final : public Dataset {
num_outputs_ = inputs.size() + cached_op_->num_outputs() - cached_op_->num_inputs();
}
- virtual ~LazyTransformDataset(void) {
- }
+ ~LazyTransformDataset() override = default;
- uint64_t GetLen() const {
+ uint64_t GetLen() const override {
return base_data_->GetLen();
}
- bool GetItem(uint64_t idx, std::vector<NDArray>* outputs) {
+ bool GetItem(uint64_t idx, std::vector<NDArray>* outputs) override {
std::vector<NDArray> inputs;
if (!base_data_->GetItem(idx, &inputs)) return false;
outputs->reserve(num_outputs_);
@@ -616,8 +616,8 @@ class LazyTransformDataset final : public Dataset {
std::vector<NDArray*> ndinputs;
std::vector<NDArray*> ndoutputs;
ndinputs.reserve(inputs.size());
- for (size_t i = 0; i < use_input_indices_.size(); ++i) {
- ndinputs.emplace_back(&(inputs[use_input_indices_[i]]));
+ for (int use_input_indice : use_input_indices_) {
+ ndinputs.emplace_back(&(inputs[use_input_indice]));
}
ndoutputs.reserve(cached_op_->num_outputs());
CHECK_LE(cached_op_->num_outputs(), outputs->size());
@@ -625,8 +625,8 @@ class LazyTransformDataset final : public Dataset {
ndoutputs.emplace_back(&(outputs->at(i)));
}
- for (size_t i = 0; i < inputs.size(); ++i) {
- inputs[i].WaitToRead();
+ for (auto & input : inputs) {
+ input.WaitToRead();
}
CHECK(inputs.size() > 0) << "dataset getitem requires at least one input";
Context default_ctx = inputs[0].ctx();
diff --git a/src/io/image_aug_default.cc b/src/io/image_aug_default.cc
index c26ebf8..c39777b 100644
--- a/src/io/image_aug_default.cc
+++ b/src/io/image_aug_default.cc
@@ -205,7 +205,7 @@ std::vector<dmlc::ParamFieldInfo> ListDefaultAugParams() {
class DefaultImageAugmenter : public ImageAugmenter {
public:
// contructor
- DefaultImageAugmenter() {}
+ DefaultImageAugmenter() = default;
void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
std::vector<std::pair<std::string, std::string> > kwargs_left;
kwargs_left = param_.InitAllowUnknown(kwargs);
diff --git a/src/io/image_det_aug_default.cc b/src/io/image_det_aug_default.cc
index f602a63..6b3109f 100644
--- a/src/io/image_det_aug_default.cc
+++ b/src/io/image_det_aug_default.cc
@@ -404,7 +404,7 @@ class ImageDetLabel {
class DefaultImageDetAugmenter : public ImageAugmenter {
public:
// contructor
- DefaultImageDetAugmenter() {}
+ DefaultImageDetAugmenter() = default;
void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
std::vector<std::pair<std::string, std::string> > kwargs_left;
diff --git a/src/io/iter_csv.cc b/src/io/iter_csv.cc
index 0c1b823..87f295d 100644
--- a/src/io/iter_csv.cc
+++ b/src/io/iter_csv.cc
@@ -62,16 +62,16 @@ class CSVIterBase: public IIterator<DataInst> {
CSVIterBase() {
out_.data.resize(2);
}
- virtual ~CSVIterBase() {}
+ ~CSVIterBase() override = default;
// initialize iterator loads data in
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) = 0;
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override = 0;
/*! \brief reset the iterator */
- virtual void BeforeFirst(void) = 0;
+ void BeforeFirst() override = 0;
/*! \brief move to next item */
- virtual bool Next(void) = 0;
+ bool Next() override = 0;
/*! \brief get current data */
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return out_;
}
@@ -93,9 +93,9 @@ class CSVIterBase: public IIterator<DataInst> {
template <typename DType>
class CSVIterTyped: public CSVIterBase {
public:
- virtual ~CSVIterTyped() {}
+ ~CSVIterTyped() override = default;
// intialize iterator loads data in
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
data_parser_.reset(dmlc::Parser<uint32_t, DType>::Create(param_.data_csv.c_str(), 0, 1, "csv"));
if (param_.label_csv != "NULL") {
@@ -108,7 +108,7 @@ class CSVIterTyped: public CSVIterBase {
}
}
- virtual void BeforeFirst() {
+ void BeforeFirst() override {
data_parser_->BeforeFirst();
if (label_parser_.get() != nullptr) {
label_parser_->BeforeFirst();
@@ -119,7 +119,7 @@ class CSVIterTyped: public CSVIterBase {
end_ = false;
}
- virtual bool Next() {
+ bool Next() override {
if (end_) return false;
while (data_ptr_ >= data_size_) {
if (!data_parser_->Next()) {
@@ -163,11 +163,11 @@ class CSVIterTyped: public CSVIterBase {
class CSVIter: public IIterator<DataInst> {
public:
- CSVIter() {}
- virtual ~CSVIter() {}
+ CSVIter() = default;
+ ~CSVIter() override = default;
// intialize iterator loads data in
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
bool dtype_has_value = false;
int target_dtype = -1;
@@ -195,15 +195,15 @@ class CSVIter: public IIterator<DataInst> {
iterator_->Init(kwargs);
}
- virtual void BeforeFirst() {
+ void BeforeFirst() override {
iterator_->BeforeFirst();
}
- virtual bool Next() {
+ bool Next() override {
return iterator_->Next();
}
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return iterator_->Value();
}
diff --git a/src/io/iter_image_det_recordio.cc b/src/io/iter_image_det_recordio.cc
index 876c075..3fe0ec7 100644
--- a/src/io/iter_image_det_recordio.cc
+++ b/src/io/iter_image_det_recordio.cc
@@ -32,6 +32,7 @@
#include <dmlc/parameter.h>
#include <dmlc/recordio.h>
#include <dmlc/threadediter.h>
+#include <memory>
#include <unordered_map>
#include <vector>
#include <cstdlib>
@@ -213,7 +214,7 @@ class ImageDetRecordIOParser {
inline void Init(const std::vector<std::pair<std::string, std::string> >& kwargs);
// set record to the head
- inline void BeforeFirst(void) {
+ inline void BeforeFirst() {
return source_->BeforeFirst();
}
// parse next set of records, return an array of
@@ -273,8 +274,8 @@ inline void ImageDetRecordIOParser<DType>::Init(
prnds_.emplace_back(new common::RANDOM_ENGINE((i + 1) * kRandMagic));
}
if (param_.path_imglist.length() != 0) {
- label_map_.reset(new ImageDetLabelMap(param_.path_imglist.c_str(),
- param_.label_width, !param_.verbose));
+ label_map_ = std::make_unique<ImageDetLabelMap>(param_.path_imglist.c_str(),
+ param_.label_width, !param_.verbose);
}
CHECK(param_.path_imgrec.length() != 0)
<< "ImageDetRecordIOIterator: must specify image_rec";
@@ -510,12 +511,12 @@ class ImageDetRecordIter : public IIterator<DataInst> {
public:
ImageDetRecordIter() : data_(nullptr) { }
// destructor
- virtual ~ImageDetRecordIter(void) {
+ ~ImageDetRecordIter() override {
iter_.Destroy();
delete data_;
}
// constructor
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
// use the kwarg to init parser
parser_.Init(kwargs);
@@ -533,13 +534,13 @@ class ImageDetRecordIter : public IIterator<DataInst> {
rnd_.seed(kRandMagic + param_.seed);
}
// before first
- virtual void BeforeFirst(void) {
+ void BeforeFirst() override {
iter_.BeforeFirst();
inst_order_.clear();
inst_ptr_ = 0;
}
- virtual bool Next(void) {
+ bool Next() override {
while (true) {
if (inst_ptr_ < inst_order_.size()) {
std::pair<unsigned, unsigned> p = inst_order_[inst_ptr_];
@@ -553,7 +554,7 @@ class ImageDetRecordIter : public IIterator<DataInst> {
for (unsigned i = 0; i < data_->size(); ++i) {
const InstVector<DType>& tmp = (*data_)[i];
for (unsigned j = 0; j < tmp.Size(); ++j) {
- inst_order_.push_back(std::make_pair(i, j));
+ inst_order_.emplace_back(i, j);
}
}
// shuffle instance order if needed
@@ -566,7 +567,7 @@ class ImageDetRecordIter : public IIterator<DataInst> {
return false;
}
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return out_;
}
diff --git a/src/io/iter_image_recordio.cc b/src/io/iter_image_recordio.cc
index 066cad9..2300805 100644
--- a/src/io/iter_image_recordio.cc
+++ b/src/io/iter_image_recordio.cc
@@ -32,6 +32,7 @@
#include <dmlc/parameter.h>
#include <dmlc/recordio.h>
#include <dmlc/threadediter.h>
+#include <memory>
#include <unordered_map>
#include <vector>
#include <cstdlib>
@@ -53,7 +54,7 @@ class ImageRecordIOParser {
inline void Init(const std::vector<std::pair<std::string, std::string> >& kwargs);
// set record to the head
- inline void BeforeFirst(void) {
+ inline void BeforeFirst() {
return source_->BeforeFirst();
}
// parse next set of records, return an array of
@@ -111,8 +112,8 @@ inline void ImageRecordIOParser<DType>::Init(
prnds_.emplace_back(new common::RANDOM_ENGINE((i + 1) * kRandMagic));
}
if (param_.path_imglist.length() != 0) {
- label_map_.reset(new ImageLabelMap(param_.path_imglist.c_str(),
- param_.label_width, !param_.verbose));
+ label_map_ = std::make_unique<ImageLabelMap>(param_.path_imglist.c_str(),
+ param_.label_width, !param_.verbose);
}
CHECK(param_.path_imgrec.length() != 0)
<< "ImageRecordIOIterator: must specify image_rec";
@@ -253,12 +254,12 @@ class ImageRecordIter : public IIterator<DataInst> {
public:
ImageRecordIter() : data_(nullptr) { }
// destructor
- virtual ~ImageRecordIter(void) {
+ ~ImageRecordIter() override {
iter_.Destroy();
delete data_;
}
// constructor
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
// use the kwarg to init parser
parser_.Init(kwargs);
@@ -276,13 +277,13 @@ class ImageRecordIter : public IIterator<DataInst> {
rnd_.seed(kRandMagic + param_.seed);
}
// before first
- virtual void BeforeFirst(void) {
+ void BeforeFirst() override {
iter_.BeforeFirst();
inst_order_.clear();
inst_ptr_ = 0;
}
- virtual bool Next(void) {
+ bool Next() override {
while (true) {
if (inst_ptr_ < inst_order_.size()) {
std::pair<unsigned, unsigned> p = inst_order_[inst_ptr_];
@@ -296,7 +297,7 @@ class ImageRecordIter : public IIterator<DataInst> {
for (unsigned i = 0; i < data_->size(); ++i) {
const InstVector<DType>& tmp = (*data_)[i];
for (unsigned j = 0; j < tmp.Size(); ++j) {
- inst_order_.push_back(std::make_pair(i, j));
+ inst_order_.emplace_back(i, j);
}
}
// shuffle instance order if needed
@@ -309,7 +310,7 @@ class ImageRecordIter : public IIterator<DataInst> {
return false;
}
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return out_;
}
diff --git a/src/io/iter_image_recordio_2.cc b/src/io/iter_image_recordio_2.cc
index ad6e2a1..f4f88b7 100644
--- a/src/io/iter_image_recordio_2.cc
+++ b/src/io/iter_image_recordio_2.cc
@@ -33,6 +33,7 @@
#include <dmlc/omp.h>
#include <dmlc/common.h>
#include <dmlc/timer.h>
+#include <memory>
#include <type_traits>
#if MXNET_USE_LIBJPEG_TURBO
#include <turbojpeg.h>
@@ -55,7 +56,7 @@ class ImageRecordIOParser2 {
inline void Init(const std::vector<std::pair<std::string, std::string> >& kwargs);
// set record to the head
- inline void BeforeFirst(void) {
+ inline void BeforeFirst() {
if (batch_param_.round_batch == 0 || !overflow) {
n_parsed_ = 0;
return source_->BeforeFirst();
@@ -79,7 +80,7 @@ class ImageRecordIOParser2 {
#endif
inline size_t ParseChunk(DType* data_dptr, real_t* label_dptr, const size_t current_size,
dmlc::InputSplit::Blob * chunk);
- inline void CreateMeanImg(void);
+ inline void CreateMeanImg();
// magic number to seed prng
static const int kRandMagic = 111;
@@ -169,8 +170,8 @@ inline void ImageRecordIOParser2<DType>::Init(
prnds_.emplace_back(new common::RANDOM_ENGINE((i + 1) * kRandMagic));
}
if (param_.path_imglist.length() != 0) {
- label_map_.reset(new ImageLabelMap(param_.path_imglist.c_str(),
- param_.label_width, !param_.verbose));
+ label_map_ = std::make_unique<ImageLabelMap>(param_.path_imglist.c_str(),
+ param_.label_width, !param_.verbose);
}
CHECK(param_.path_imgrec.length() != 0)
<< "ImageRecordIter2: must specify image_rec";
@@ -665,7 +666,7 @@ inline size_t ImageRecordIOParser2<DType>::ParseChunk(DType* data_dptr, real_t*
// create mean image.
template<typename DType>
-inline void ImageRecordIOParser2<DType>::CreateMeanImg(void) {
+inline void ImageRecordIOParser2<DType>::CreateMeanImg() {
if (param_.verbose) {
LOG(INFO) << "Cannot find " << normalize_param_.mean_img
<< ": create mean image, this will take some time...";
@@ -677,8 +678,7 @@ inline void ImageRecordIOParser2<DType>::CreateMeanImg(void) {
inst_order_.clear();
// Parse chunk w/o putting anything in out
ParseChunk(nullptr, nullptr, batch_param_.batch_size, &chunk);
- for (size_t i = 0; i < inst_order_.size(); ++i) {
- std::pair<size_t, size_t> place = inst_order_[i];
+ for (auto place : inst_order_) {
mshadow::Tensor<cpu, 3> outimg =
temp_[place.first][place.second].data[0].template get<cpu, 3, real_t>();
if (imcnt == 0) {
@@ -714,13 +714,13 @@ inline void ImageRecordIOParser2<DType>::CreateMeanImg(void) {
template<typename DType = real_t>
class ImageRecordIter2 : public IIterator<DataBatch> {
public:
- ImageRecordIter2() : out_(nullptr) { }
+ ImageRecordIter2() = default;
- virtual ~ImageRecordIter2(void) {
+ ~ImageRecordIter2() override {
iter_.Destroy();
}
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
prefetch_param_.InitAllowUnknown(kwargs);
parser_.Init(kwargs);
// maximum prefetch threaded iter internal size
@@ -737,12 +737,12 @@ class ImageRecordIter2 : public IIterator<DataBatch> {
[this]() { parser_.BeforeFirst(); });
}
- virtual void BeforeFirst(void) {
+ void BeforeFirst() override {
iter_.BeforeFirst();
}
// From iter_prefetcher.h
- virtual bool Next(void) {
+ bool Next() override {
if (out_ != nullptr) {
recycle_queue_.push(out_); out_ = nullptr;
}
@@ -759,7 +759,7 @@ class ImageRecordIter2 : public IIterator<DataBatch> {
return iter_.Next(&out_);
}
- virtual const DataBatch &Value(void) const {
+ const DataBatch &Value() const override {
return *out_;
}
@@ -769,7 +769,7 @@ class ImageRecordIter2 : public IIterator<DataBatch> {
/*! \brief Parameters */
PrefetcherParam prefetch_param_;
/*! \brief output data */
- DataBatch *out_;
+ DataBatch *out_{nullptr};
/*! \brief queue to be recycled */
std::queue<DataBatch*> recycle_queue_;
/* \brief parser */
@@ -784,19 +784,19 @@ class ImageRecordIter2CPU : public IIterator<DataBatch> {
var_ = Engine::Get()->NewVariable();
}
- virtual ~ImageRecordIter2CPU(void) {
+ ~ImageRecordIter2CPU() override {
Engine::Get()->DeleteVariable([](mxnet::RunContext ctx) {}, Context::CPU(), var_);
delete out_;
}
- virtual void Init(const std::vector<std::pair<std::string, std::string>>& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string>>& kwargs) override {
parser_.Init(kwargs);
}
- virtual void BeforeFirst(void) { parser_.BeforeFirst(); }
+ void BeforeFirst() override { parser_.BeforeFirst(); }
// From iter_prefetcher.h
- virtual bool Next(void) {
+ bool Next() override {
bool result = false;
const auto engine = Engine::Get();
engine->PushSync(
@@ -808,7 +808,7 @@ class ImageRecordIter2CPU : public IIterator<DataBatch> {
return result;
}
- virtual const DataBatch& Value(void) const { return *out_; }
+ const DataBatch& Value() const override { return *out_; }
private:
/*! \brief Backend thread */
@@ -824,7 +824,7 @@ class ImageRecordIter2CPU : public IIterator<DataBatch> {
class ImageRecordIter2Wrapper : public IIterator<DataBatch> {
public:
- ~ImageRecordIter2Wrapper(void) override {
+ ~ImageRecordIter2Wrapper() override {
if (record_iter_) delete record_iter_;
}
void Init(const std::vector<std::pair<std::string, std::string>>& kwargs) override {
@@ -869,14 +869,14 @@ class ImageRecordIter2Wrapper : public IIterator<DataBatch> {
record_iter_->Init(kwargs);
}
- void BeforeFirst(void) override {
+ void BeforeFirst() override {
record_iter_->BeforeFirst();
}
// From iter_prefetcher.h
- bool Next(void) override { return record_iter_->Next(); }
+ bool Next() override { return record_iter_->Next(); }
- const DataBatch &Value(void) const override {
+ const DataBatch &Value() const override {
return record_iter_->Value();
}
diff --git a/src/io/iter_libsvm.cc b/src/io/iter_libsvm.cc
index 3decc7b..0965bfc 100644
--- a/src/io/iter_libsvm.cc
+++ b/src/io/iter_libsvm.cc
@@ -66,11 +66,11 @@ struct LibSVMIterParam : public dmlc::Parameter<LibSVMIterParam> {
class LibSVMIter: public SparseIIterator<DataInst> {
public:
- LibSVMIter() {}
- virtual ~LibSVMIter() {}
+ LibSVMIter() = default;
+ ~LibSVMIter() override = default;
// intialize iterator loads data in
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
CHECK_EQ(param_.data_shape.ndim(), 1) << "dimension of data_shape is expected to be 1";
CHECK_GT(param_.num_parts, 0) << "number of parts should be positive";
@@ -97,7 +97,7 @@ class LibSVMIter: public SparseIIterator<DataInst> {
}
}
- virtual void BeforeFirst() {
+ void BeforeFirst() override {
data_parser_->BeforeFirst();
if (label_parser_.get() != nullptr) {
label_parser_->BeforeFirst();
@@ -108,7 +108,7 @@ class LibSVMIter: public SparseIIterator<DataInst> {
end_ = false;
}
- virtual bool Next() {
+ bool Next() override {
if (end_) return false;
while (data_ptr_ >= data_size_) {
if (!data_parser_->Next()) {
@@ -144,16 +144,16 @@ class LibSVMIter: public SparseIIterator<DataInst> {
return true;
}
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return out_;
}
- virtual const NDArrayStorageType GetStorageType(bool is_data) const {
+ const NDArrayStorageType GetStorageType(bool is_data) const override {
if (is_data) return kCSRStorage;
return param_.label_shape.Size() > 1 ? kCSRStorage : kDefaultStorage;
}
- virtual const mxnet::TShape GetShape(bool is_data) const {
+ const mxnet::TShape GetShape(bool is_data) const override {
if (is_data) return param_.data_shape;
return param_.label_shape;
}
diff --git a/src/io/iter_mnist.cc b/src/io/iter_mnist.cc
index b752ce4..0d5f96c 100644
--- a/src/io/iter_mnist.cc
+++ b/src/io/iter_mnist.cc
@@ -79,15 +79,15 @@ struct MNISTParam : public dmlc::Parameter<MNISTParam> {
class MNISTIter: public IIterator<TBlobBatch> {
public:
- MNISTIter(void) : loc_(0), inst_offset_(0) {
+ MNISTIter() {
img_.dptr_ = nullptr;
out_.data.resize(2);
}
- virtual ~MNISTIter(void) {
+ ~MNISTIter() override {
delete []img_.dptr_;
}
// intialize iterator loads data in
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
std::map<std::string, std::string> kmap(kwargs.begin(), kwargs.end());
param_.InitAllowUnknown(kmap);
this->LoadImage();
@@ -115,10 +115,10 @@ class MNISTIter: public IIterator<TBlobBatch> {
}
}
}
- virtual void BeforeFirst(void) {
+ void BeforeFirst() override {
this->loc_ = 0;
}
- virtual bool Next(void) {
+ bool Next() override {
if (loc_ + param_.batch_size <= img_.size(0)) {
batch_data_.dptr_ = img_[loc_].dptr_;
batch_label_.dptr_ = &labels_[loc_];
@@ -135,7 +135,7 @@ class MNISTIter: public IIterator<TBlobBatch> {
return false;
}
}
- virtual const TBlobBatch &Value(void) const {
+ const TBlobBatch &Value() const override {
return out_;
}
@@ -151,7 +151,7 @@ class MNISTIter: public IIterator<TBlobBatch> {
static_cast<double>(count) / param_.num_parts * (param_.part_index+1));
}
- inline void LoadImage(void) {
+ inline void LoadImage() {
dmlc::SeekStream* stdimg
= dmlc::SeekStream::CreateForRead(param_.image.c_str());
ReadInt(stdimg);
@@ -184,7 +184,7 @@ class MNISTIter: public IIterator<TBlobBatch> {
img_ *= 1.0f / 256.0f;
delete stdimg;
}
- inline void LoadLabel(void) {
+ inline void LoadLabel() {
dmlc::SeekStream* stdlabel
= dmlc::SeekStream::CreateForRead(param_.label.c_str());
ReadInt(stdlabel);
@@ -206,7 +206,7 @@ class MNISTIter: public IIterator<TBlobBatch> {
}
delete stdlabel;
}
- inline void Shuffle(void) {
+ inline void Shuffle() {
std::shuffle(inst_.begin(), inst_.end(), common::RANDOM_ENGINE(kRandMagic + param_.seed));
std::vector<float> tmplabel(labels_.size());
mshadow::TensorContainer<cpu, 3> tmpimg(img_.shape_);
@@ -238,7 +238,7 @@ class MNISTIter: public IIterator<TBlobBatch> {
/*! \brief output */
TBlobBatch out_;
/*! \brief current location */
- index_t loc_;
+ index_t loc_{0};
/*! \brief image content */
mshadow::Tensor<cpu, 3> img_;
/*! \brief label content */
@@ -248,7 +248,7 @@ class MNISTIter: public IIterator<TBlobBatch> {
/*! \brief batch label tensor */
mshadow::Tensor<cpu, 2> batch_label_;
/*! \brief instance index offset */
- unsigned inst_offset_;
+ unsigned inst_offset_{0};
/*! \brief instance index */
std::vector<unsigned> inst_;
// magic number to setup randomness
diff --git a/src/io/iter_sampler.cc b/src/io/iter_sampler.cc
index 932bcc9..049347d 100644
--- a/src/io/iter_sampler.cc
+++ b/src/io/iter_sampler.cc
@@ -27,6 +27,7 @@
#include <mxnet/io.h>
#include <mxnet/base.h>
#include <mxnet/resource.h>
+#include <memory>
#include <numeric>
#include "../common/utils.h"
#include "./iter_batchloader.h"
@@ -52,22 +53,22 @@ DMLC_REGISTER_PARAMETER(SequentialSamplerParam);
class SequentialSampler : public IIterator<DataInst> {
public:
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
indices_.resize(param_.length);
std::iota(std::begin(indices_), std::end(indices_), 0); // fill like arange
out_.data.resize(1);
}
- virtual void BeforeFirst(void) {
+ void BeforeFirst() override {
pos_ = 0;
}
- virtual int64_t GetLenHint(void) const {
+ int64_t GetLenHint() const override {
return static_cast<int64_t>(indices_.size());
}
- virtual bool Next(void) {
+ bool Next() override {
if (pos_ < indices_.size()) {
int64_t *ptr = indices_.data() + pos_;
out_.data[0] = TBlob(ptr, TShape({1, }), cpu::kDevMask, 0);
@@ -77,7 +78,7 @@ class SequentialSampler : public IIterator<DataInst> {
return false;
}
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return out_;
}
@@ -117,27 +118,27 @@ DMLC_REGISTER_PARAMETER(RandomSamplerParam);
class RandomSampler : public IIterator<DataInst> {
public:
- virtual void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) {
+ void Init(const std::vector<std::pair<std::string, std::string> >& kwargs) override {
param_.InitAllowUnknown(kwargs);
indices_.resize(param_.length);
std::iota(std::begin(indices_), std::end(indices_), 0); // fill like arange
mshadow::Random<cpu> *ctx_rng = ResourceManager::Get()->Request(
Context::CPU(), ResourceRequest::kRandom).get_random<cpu, real_t>(nullptr);
- rng_.reset(new common::RANDOM_ENGINE(ctx_rng->GetSeed()));
+ rng_ = std::make_unique<common::RANDOM_ENGINE>(ctx_rng->GetSeed());
out_.data.resize(1);
BeforeFirst();
}
- virtual void BeforeFirst(void) {
+ void BeforeFirst() override {
std::shuffle(std::begin(indices_), std::end(indices_), *rng_);
pos_ = 0;
}
- virtual int64_t GetLenHint(void) const {
+ int64_t GetLenHint() const override {
return static_cast<int64_t>(indices_.size());
}
- virtual bool Next(void) {
+ bool Next() override {
if (pos_ < indices_.size()) {
int64_t *ptr = indices_.data() + pos_;
out_.data[0] = TBlob(ptr, TShape({1, }), cpu::kDevMask, 0);
@@ -147,7 +148,7 @@ class RandomSampler : public IIterator<DataInst> {
return false;
}
- virtual const DataInst &Value(void) const {
+ const DataInst &Value() const override {
return out_;
}
private:
diff --git a/src/kvstore/kvstore.cc b/src/kvstore/kvstore.cc
index fa3f910..87daad6 100644
--- a/src/kvstore/kvstore.cc
+++ b/src/kvstore/kvstore.cc
@@ -23,7 +23,6 @@
* \brief implement kv_store
*/
#include <mxnet/kvstore.h>
-#include <stdlib.h>
#include <dmlc/logging.h>
#include "./kvstore_local.h"
@@ -36,6 +35,8 @@ std::atomic<int> mxnet::kvstore::KVStoreDist::customer_id_{0};
#include "./kvstore_nccl.h"
#endif // MXNET_USE_NCCL
+#include <cstdlib>
+
namespace mxnet {
KVStore* KVStore::Create(const char *type_name) {
diff --git a/src/nnvm/gradient.cc b/src/nnvm/gradient.cc
index 09c02b2..447f658 100644
--- a/src/nnvm/gradient.cc
+++ b/src/nnvm/gradient.cc
@@ -168,8 +168,8 @@ Graph Gradient(Graph src) {
// information is needed in later stages to determine whether putting a node
// on the mirror path can be beneficial or not.
using mxnet::ShapeVector;
- ShapeVector in_arg_shapes = std::move(src.GetAttr<ShapeVector>("in_arg_shapes"));
- DTypeVector in_arg_dtypes = std::move(src.GetAttr<DTypeVector>("in_arg_dtypes"));
+ ShapeVector in_arg_shapes = src.GetAttr<ShapeVector>("in_arg_shapes");
+ DTypeVector in_arg_dtypes = src.GetAttr<DTypeVector>("in_arg_dtypes");
src = mxnet::exec::InferShape(std::move(src), std::move(in_arg_shapes), "__shape__");
src = mxnet::exec::InferType(std::move(src), std::move(in_arg_dtypes), "__dtype__");
CHECK(src.GetAttr<size_t>("shape_num_unknown_nodes") == 0U);
@@ -583,8 +583,7 @@ Graph BuildGradientGraph(
// gather all the output gradient entries and apply the aggregation function
out_agg_grads.clear();
auto& out_grad_vec = output_grads.at(src_fwd_node.get());
- for (uint32_t i = 0; i < out_grad_vec.size(); ++i) {
- GradEntry& e = out_grad_vec[i];
+ for (auto & e : out_grad_vec) {
e.sum = agg_fun(std::move(e.grads));
out_agg_grads.push_back(e.sum);
}
@@ -698,7 +697,7 @@ Graph BuildGradientGraph(
// register pass
NNVM_REGISTER_PASS(MXGradient)
-.describe("Return a gradient graph of src.attrs[\"ys\"] wrt src.attrs[\"xs\"]")
+.describe(R"(Return a gradient graph of src.attrs["ys"] wrt src.attrs["xs"])")
.set_body(Gradient)
.set_change_graph(true)
.depend_graph_attr("grad_ys")
diff --git a/src/nnvm/graph_editor.cc b/src/nnvm/graph_editor.cc
index 2d2053c..44a807e 100644
--- a/src/nnvm/graph_editor.cc
+++ b/src/nnvm/graph_editor.cc
@@ -27,6 +27,8 @@
#include <nnvm/graph.h>
#include <nnvm/node.h>
+#include <utility>
+
namespace nnvm {
ObjectPtr CreateVariableNode(const std::string& name);
}
@@ -67,7 +69,7 @@ bool CutGraphInputs(const std::vector<nnvm::NodeEntry *> &input_entries,
bool skip_var, std::vector<nnvm::NodeEntry> *orig_entries) {
struct pred_entry {
nnvm::NodeEntry e;
- explicit pred_entry(const nnvm::NodeEntry &_e): e(_e) {}
+ explicit pred_entry(nnvm::NodeEntry _e): e(std::move(_e)) {}
bool operator()(const nnvm::NodeEntry e1) {
return e.node == e1.node && e.index == e1.index;
}
diff --git a/src/nnvm/low_precision_pass.cc b/src/nnvm/low_precision_pass.cc
index 66ec59d..a13344d 100644
--- a/src/nnvm/low_precision_pass.cc
+++ b/src/nnvm/low_precision_pass.cc
@@ -134,11 +134,10 @@ static bool CheckConditionalFP32(
auto it_params = it->second;
// For each param name, iterate through param values to check
// if the provided param name is equal to any of the values
- for (auto it_param = it_params.begin(); it_param != it_params.end();
- it_param++) {
- auto param_key = node->attrs.dict.find(it_param->first);
+ for (auto & it_param : it_params) {
+ auto param_key = node->attrs.dict.find(it_param.first);
if (param_key != node->attrs.dict.end()) {
- auto it_param_vals = it_param->second;
+ auto it_param_vals = it_param.second;
if (std::find(it_param_vals.begin(), it_param_vals.end(),
param_key->second) != it_param_vals.end()) {
return true;
@@ -282,13 +281,13 @@ Graph ReducePrecision(Graph &&src) {
<< "can't handle the widest_dtype_ops with mutable inputs.";
int out_dtype = target_dtype;
bool have_unknown_dtype = false;
- for (size_t i = 0; i < node->inputs.size(); ++i) {
+ for (auto & input : node->inputs) {
// Try to infer output dtype based on input dtype
- if (!mirror_target_dtype_map.count(node->inputs[i])
- && !mirror_fp32_map.count(node->inputs[i])) {
+ if (!mirror_target_dtype_map.count(input)
+ && !mirror_fp32_map.count(input)) {
have_unknown_dtype = true;
break;
- } else if (mirror_fp32_map.count(node->inputs[i])) {
+ } else if (mirror_fp32_map.count(input)) {
out_dtype = mshadow::kFloat32;
}
}
diff --git a/src/nnvm/tvm_bridge.cc b/src/nnvm/tvm_bridge.cc
index 17e05e3..66e010a 100644
--- a/src/nnvm/tvm_bridge.cc
+++ b/src/nnvm/tvm_bridge.cc
@@ -40,6 +40,7 @@
#include <mxnet/engine.h>
#include <memory>
+#include <utility>
namespace mxnet {
@@ -55,7 +56,7 @@ class TVMFunctor {
public:
// constructor
explicit TVMFunctor(PackedFunc func, PackedFunc fset_stream)
- : func_(func), fset_stream_(fset_stream) {}
+ : func_(std::move(func)), fset_stream_(std::move(fset_stream)) {}
void Init(const TVMArgs& args,
const std::vector<int>& const_loc,
diff --git a/src/operator/contrib/boolean_mask.cc b/src/operator/contrib/boolean_mask.cc
index a4e924e..8829844 100644
--- a/src/operator/contrib/boolean_mask.cc
+++ b/src/operator/contrib/boolean_mask.cc
@@ -68,8 +68,8 @@ bool BooleanMaskBackStorageType(const nnvm::NodeAttrs& attrs,
for (int &attr : *out_attrs) {
attr = kDefaultStorage;
}
- for (size_t i = 0; i < out_attrs->size(); i++)
- out_attrs->at(i) = kDefaultStorage;
+ for (int & out_attr : *out_attrs)
+ out_attr = kDefaultStorage;
*dispatch_mode = DispatchMode::kFComputeEx;
return true;
}
diff --git a/src/operator/contrib/dgl_graph.cc b/src/operator/contrib/dgl_graph.cc
index 89bee8a..c8e27f3 100644
--- a/src/operator/contrib/dgl_graph.cc
+++ b/src/operator/contrib/dgl_graph.cc
@@ -26,6 +26,7 @@
#include <dmlc/optional.h>
#include <algorithm>
#include <random>
+#include <utility>
#include "../elemwise_op_common.h"
#include "../../imperative/imperative_utils.h"
@@ -63,7 +64,7 @@ class ArrayHeap {
}
}
}
- ~ArrayHeap() {}
+ ~ArrayHeap() = default;
/*
* Remove term from index (this costs O(log m) steps)
@@ -417,8 +418,8 @@ static void RandomSample(size_t set_size,
sampled_idxs.insert(distribution(generator));
}
out->clear();
- for (auto it = sampled_idxs.begin(); it != sampled_idxs.end(); it++) {
- out->push_back(*it);
+ for (size_t sampled_idx : sampled_idxs) {
+ out->push_back(sampled_idx);
}
}
@@ -528,9 +529,9 @@ static void GetNonUniformSample(const float* probability,
struct neigh_list {
std::vector<dgl_id_t> neighs;
std::vector<dgl_id_t> edges;
- neigh_list(const std::vector<dgl_id_t> &_neighs,
- const std::vector<dgl_id_t> &_edges)
- : neighs(_neighs), edges(_edges) {}
+ neigh_list(std::vector<dgl_id_t> _neighs,
+ std::vector<dgl_id_t> _edges)
+ : neighs(std::move(_neighs)), edges(std::move(_edges)) {}
};
/*
@@ -620,25 +621,25 @@ static void SampleSubgraph(const NDArray &csr,
// First we push the size of neighbor vector
neighbor_list.push_back(tmp_sampled_edge_list.size());
// Then push the vertices
- for (size_t i = 0; i < tmp_sampled_src_list.size(); ++i) {
- neighbor_list.push_back(tmp_sampled_src_list[i]);
+ for (dgl_id_t & i : tmp_sampled_src_list) {
+ neighbor_list.push_back(i);
}
// Finally we push the edge list
- for (size_t i = 0; i < tmp_sampled_edge_list.size(); ++i) {
- neighbor_list.push_back(tmp_sampled_edge_list[i]);
+ for (dgl_id_t & i : tmp_sampled_edge_list) {
+ neighbor_list.push_back(i);
}
num_edges += tmp_sampled_src_list.size();
- for (size_t i = 0; i < tmp_sampled_src_list.size(); ++i) {
+ for (dgl_id_t & i : tmp_sampled_src_list) {
// If we have sampled the max number of vertices, we have to stop.
if (sub_ver_mp.size() >= max_num_vertices)
break;
// We need to add the neighbor in the hashtable here. This ensures that
// the vertex in the queue is unique. If we see a vertex before, we don't
// need to add it to the queue again.
- auto ret = sub_ver_mp.insert(tmp_sampled_src_list[i]);
+ auto ret = sub_ver_mp.insert(i);
// If the sampled neighbor is inserted to the map successfully.
if (ret.second)
- sub_vers.emplace_back(tmp_sampled_src_list[i], cur_node_level + 1);
+ sub_vers.emplace_back(i, cur_node_level + 1);
}
}
// Let's check if there is a vertex that we haven't sampled its neighbors.
@@ -960,8 +961,8 @@ static bool DGLSubgraphStorageType(const nnvm::NodeAttrs& attrs,
bool success = true;
*dispatch_mode = DispatchMode::kFComputeEx;
- for (size_t i = 0; i < out_attrs->size(); i++) {
- if (!type_assign(&(*out_attrs)[i], mxnet::kCSRStorage))
+ for (int & out_attr : *out_attrs) {
+ if (!type_assign(&out_attr, mxnet::kCSRStorage))
success = false;
}
return success;
@@ -999,8 +1000,8 @@ static bool DGLSubgraphType(const nnvm::NodeAttrs& attrs,
for (size_t i = 0; i < num_g; i++) {
CHECK_EQ(in_attrs->at(i + 1), mshadow::kInt64);
}
- for (size_t i = 0; i < out_attrs->size(); i++) {
- out_attrs->at(i) = in_attrs->at(0);
+ for (int & out_attr : *out_attrs) {
+ out_attr = in_attrs->at(0);
}
return true;
}
@@ -1016,7 +1017,7 @@ class Bitmap {
public:
Bitmap(const dgl_id_t *vid_data, int64_t len): map(size) {
for (int64_t i = 0; i < len; ++i) {
- map[hash(vid_data[i])] = 1;
+ map[hash(vid_data[i])] = true;
}
}
@@ -1531,8 +1532,8 @@ static bool SubgraphCompactStorageType(const nnvm::NodeAttrs& attrs,
bool success = true;
*dispatch_mode = DispatchMode::kFComputeEx;
- for (size_t i = 0; i < out_attrs->size(); i++) {
- if (!type_assign(&(*out_attrs)[i], mxnet::kCSRStorage))
+ for (int & out_attr : *out_attrs) {
+ if (!type_assign(&out_attr, mxnet::kCSRStorage))
success = false;
}
return success;
@@ -1570,11 +1571,11 @@ static bool SubgraphCompactShape(const nnvm::NodeAttrs& attrs,
static bool SubgraphCompactType(const nnvm::NodeAttrs& attrs,
std::vector<int> *in_attrs,
std::vector<int> *out_attrs) {
- for (size_t i = 0; i < in_attrs->size(); i++) {
- CHECK_EQ(in_attrs->at(i), mshadow::kInt64);
+ for (int & in_attr : *in_attrs) {
+ CHECK_EQ(in_attr, mshadow::kInt64);
}
- for (size_t i = 0; i < out_attrs->size(); i++) {
- out_attrs->at(i) = mshadow::kInt64;
+ for (int & out_attr : *out_attrs) {
+ out_attr = mshadow::kInt64;
}
return true;
}
diff --git a/src/operator/contrib/multi_proposal.cc b/src/operator/contrib/multi_proposal.cc
index e77a0b5..bf8555c 100644
--- a/src/operator/contrib/multi_proposal.cc
+++ b/src/operator/contrib/multi_proposal.cc
@@ -289,11 +289,11 @@ class MultiProposalOp : public Operator{
this->param_ = param;
}
- virtual void Forward(const OpContext &ctx,
+ void Forward(const OpContext &ctx,
const std::vector<TBlob> &in_data,
const std::vector<OpReqType> &req,
const std::vector<TBlob> &out_data,
- const std::vector<TBlob> &aux_states) {
+ const std::vector<TBlob> &aux_states) override {
using namespace mshadow;
using namespace mshadow::expr;
CHECK_EQ(in_data.size(), 3);
@@ -458,13 +458,13 @@ class MultiProposalOp : public Operator{
}
}
- virtual void Backward(const OpContext &ctx,
+ void Backward(const OpContext &ctx,
const std::vector<TBlob> &out_grad,
const std::vector<TBlob> &in_data,
const std::vector<TBlob> &out_data,
const std::vector<OpReqType> &req,
const std::vector<TBlob> &in_grad,
- const std::vector<TBlob> &aux_states) {
+ const std::vector<TBlob> &aux_states) override {
using namespace mshadow;
using namespace mshadow::expr;
CHECK_EQ(in_grad.size(), 3);
diff --git a/src/operator/contrib/proposal.cc b/src/operator/contrib/proposal.cc
index 935372d..1ca1453 100644
--- a/src/operator/contrib/proposal.cc
+++ b/src/operator/contrib/proposal.cc
@@ -278,11 +278,11 @@ class ProposalOp : public Operator{
this->param_ = param;
}
- virtual void Forward(const OpContext &ctx,
+ void Forward(const OpContext &ctx,
const std::vector<TBlob> &in_data,
const std::vector<OpReqType> &req,
const std::vector<TBlob> &out_data,
- const std::vector<TBlob> &aux_states) {
+ const std::vector<TBlob> &aux_states) override {
using namespace mshadow;
using namespace mshadow::expr;
CHECK_EQ(in_data.size(), 3);
@@ -420,13 +420,13 @@ class ProposalOp : public Operator{
}
}
- virtual void Backward(const OpContext &ctx,
+ void Backward(const OpContext &ctx,
const std::vector<TBlob> &out_grad,
const std::vector<TBlob> &in_data,
const std::vector<TBlob> &out_data,
const std::vector<OpReqType> &req,
const std::vector<TBlob> &in_grad,
- const std::vector<TBlob> &aux_states) {
+ const std::vector<TBlob> &aux_states) override {
using namespace mshadow;
using namespace mshadow::expr;
CHECK_EQ(in_grad.size(), 3);
diff --git a/src/operator/contrib/rroi_align.cc b/src/operator/contrib/rroi_align.cc
index 14690d6..415eecf 100644
--- a/src/operator/contrib/rroi_align.cc
+++ b/src/operator/contrib/rroi_align.cc
@@ -27,7 +27,7 @@
*/
#include "./rroi_align-inl.h"
#include <mshadow/tensor.h>
-#include "math.h"
+#include <cmath>
using std::max;
using std::min;
diff --git a/src/operator/control_flow.cc b/src/operator/control_flow.cc
index e6cc90a..7926f26 100644
--- a/src/operator/control_flow.cc
+++ b/src/operator/control_flow.cc
@@ -24,6 +24,8 @@
#include <mxnet/operator_util.h>
#include <dmlc/logging.h>
#include <dmlc/optional.h>
+
+#include <utility>
#include "./operator_common.h"
#include "./elemwise_op_common.h"
#include "../imperative/imperative_utils.h"
@@ -648,9 +650,9 @@ static void WhileLoopComputeExCPU(const OpStatePtr& state_ptr,
const_cast<NDArray &>(outputs[i]).SetShapeFromChunk();
}
if (state.n_iterations == 0) {
- for (size_t i = 0; i < outputs.size(); ++i) {
- if (!shape_is_known(outputs[i].shape())) {
- const_cast<NDArray &>(outputs[i]).ReshapeAndAlloc({1});
+ for (const auto & output : outputs) {
+ if (!shape_is_known(output.shape())) {
+ const_cast<NDArray &>(output).ReshapeAndAlloc({1});
}
}
}
@@ -865,11 +867,11 @@ class CondState {
LoopState else_branch;
int branch_selection; // 1 if then branch; 0 if else branch; -1 if undefined
- CondState(const CondParam ¶ms,
+ CondState(CondParam params,
const nnvm::Symbol &cond,
const nnvm::Symbol &then_sym,
const nnvm::Symbol &else_sym):
- params(params),
+ params(std::move(params)),
cond_op(LoopState::MakeSharedOp(cond)),
then_branch(then_sym),
else_branch(else_sym),
diff --git a/src/operator/leaky_relu.cc b/src/operator/leaky_relu.cc
index 681ca44..8a1a075 100644
--- a/src/operator/leaky_relu.cc
+++ b/src/operator/leaky_relu.cc
@@ -202,7 +202,7 @@ The following modified ReLU Activation functions are supported:
.set_attr<nnvm::FSetInputVarAttrOnCompose>("FSetInputVarAttrOnCompose",
[](const nnvm::NodeAttrs& attrs, nnvm::ObjectPtr var, const int index) {
if (index == 1 && var->attrs.dict.find("__init__") == var->attrs.dict.end()) {
- var->attrs.dict["__init__"] = "[\"Constant\", {\"value\": 0.25}]";
+ var->attrs.dict["__init__"] = R"(["Constant", {"value": 0.25}])";
}
});
diff --git a/src/operator/numpy/np_einsum_op.cc b/src/operator/numpy/np_einsum_op.cc
index 522780f..a89f1ad 100644
--- a/src/operator/numpy/np_einsum_op.cc
+++ b/src/operator/numpy/np_einsum_op.cc
@@ -56,8 +56,8 @@
*/
#include "./np_einsum_op-inl.h"
-#include <stdlib.h>
-#include <string.h>
+#include <cstdlib>
+#include <cstring>
namespace mxnet {
namespace op {
diff --git a/src/operator/numpy/np_indexing_op.cc b/src/operator/numpy/np_indexing_op.cc
index 3c2a041..1f1fecc 100644
--- a/src/operator/numpy/np_indexing_op.cc
+++ b/src/operator/numpy/np_indexing_op.cc
@@ -161,8 +161,8 @@ bool AdvancedIndexingOpBackStorageType(const nnvm::NodeAttrs& attrs,
for (int &attr : *out_attrs) {
attr = kDefaultStorage;
}
- for (size_t i = 0; i < out_attrs->size(); i++)
- out_attrs->at(i) = kDefaultStorage;
+ for (int & out_attr : *out_attrs)
+ out_attr = kDefaultStorage;
*dispatch_mode = DispatchMode::kFComputeEx;
return true;
}
diff --git a/src/operator/numpy/np_polynomial_op.cc b/src/operator/numpy/np_polynomial_op.cc
index 155c98f..72df77c 100644
--- a/src/operator/numpy/np_polynomial_op.cc
+++ b/src/operator/numpy/np_polynomial_op.cc
@@ -22,7 +22,7 @@
* \file np_polynomial_op.cc
*/
-#include <math.h>
+#include <cmath>
#include "np_polynomial_op-inl.h"
namespace mxnet {
diff --git a/src/operator/operator_tune.cc b/src/operator/operator_tune.cc
index b5e253a..4c66f00 100644
--- a/src/operator/operator_tune.cc
+++ b/src/operator/operator_tune.cc
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-#include <float.h>
+#include <cfloat>
#include <atomic>
#include "./mxnet_op.h"
#include "./mshadow_op.h"
diff --git a/src/operator/quantization/quantize_graph_pass.cc b/src/operator/quantization/quantize_graph_pass.cc
index 012134b..ff75801 100644
--- a/src/operator/quantization/quantize_graph_pass.cc
+++ b/src/operator/quantization/quantize_graph_pass.cc
@@ -225,8 +225,8 @@ static void MarkQuantizedNodes(const Graph& src,
while (!task_queue.empty()) {
const auto& node = task_queue.front();
task_queue.pop();
- for (size_t i = 0; i < node->inputs.size(); ++i) {
- const auto& input = node->inputs[i].node;
+ for (auto & i : node->inputs) {
+ const auto& input = i.node;
auto it = support_quantize_nodes.find(input);
if (it != support_quantize_nodes.end()) {
it->second = it->second | kFromInput;
@@ -243,8 +243,7 @@ static void MarkQuantizedNodes(const Graph& src,
const auto& node = task_queue.front();
task_queue.pop();
const auto& outputs = node_output_map[node];
- for (size_t i = 0; i < outputs.size(); ++i) {
- const auto& output = outputs[i];
+ for (const auto & output : outputs) {
auto it = support_quantize_nodes.find(output);
if (it != support_quantize_nodes.end()) {
it->second = it->second | kFromOutput;
diff --git a/src/operator/quantization/quantized_elemwise_mul.cc b/src/operator/quantization/quantized_elemwise_mul.cc
index 7d1798f..0988a8b 100644
--- a/src/operator/quantization/quantized_elemwise_mul.cc
+++ b/src/operator/quantization/quantized_elemwise_mul.cc
@@ -186,7 +186,7 @@ void QuantizedElemwiseMulOpForward(const nnvm::NodeAttrs &attrs,
out_data[i] = static_cast<out_type>(a * b * out_scale);
}
} else {
- typedef int32_t out_type;
+ using out_type = int32_t;
auto *out_data = outputs[quantized_elemwise_mul::kOut].dptr<out_type>();
#if !defined(_MSC_VER)
#pragma omp simd
@@ -198,7 +198,7 @@ void QuantizedElemwiseMulOpForward(const nnvm::NodeAttrs &attrs,
}
}
} else {
- typedef float_t out_type;
+ using out_type = float_t;
auto *out_data = outputs[quantized_elemwise_mul::kOut].dptr<out_type>();
#if !defined(_MSC_VER)
#pragma omp simd
diff --git a/src/operator/quantization/quantized_fully_connected.cc b/src/operator/quantization/quantized_fully_connected.cc
index d88aac8..e8caf79 100644
--- a/src/operator/quantization/quantized_fully_connected.cc
+++ b/src/operator/quantization/quantized_fully_connected.cc
@@ -154,7 +154,7 @@ struct QuantizedSumInitKernelWithBias {
const float *max_out, const float *min_bias,
const float *max_bias) {
typedef int32_t T1;
- typedef int8_t T2;
+ using T2 = int8_t;
using mshadow::red::limits::MinValue;
using mshadow::red::limits::MaxValue;
float float_for_one_out_quant =
diff --git a/src/operator/subgraph/default_subgraph_property.cc b/src/operator/subgraph/default_subgraph_property.cc
index dd3bfd1..ff51b63 100644
--- a/src/operator/subgraph/default_subgraph_property.cc
+++ b/src/operator/subgraph/default_subgraph_property.cc
@@ -17,6 +17,8 @@
* under the License.
*/
+#include <memory>
+
#include "./common.h"
#include "./subgraph_property.h"
#include "../../imperative/cached_op.h"
@@ -33,15 +35,15 @@ class ContainOpSelector: public SubgraphSelector {
explicit ContainOpSelector(const std::unordered_set<std::string>& op_names)
: op_names_(op_names) {}
- virtual bool Select(const nnvm::Node &seed_node) {
+ bool Select(const nnvm::Node &seed_node) override {
return !seed_node.is_variable() && op_names_.count(seed_node.op()->name);
}
- virtual bool SelectInput(const nnvm::Node &cur_node, const nnvm::Node &input_node) {
+ bool SelectInput(const nnvm::Node &cur_node, const nnvm::Node &input_node) override {
return !input_node.is_variable() && op_names_.count(input_node.op()->name);
}
- virtual bool SelectOutput(const nnvm::Node &cur_node, const nnvm::Node &output_node) {
+ bool SelectOutput(const nnvm::Node &cur_node, const nnvm::Node &output_node) override {
return !output_node.is_variable() && op_names_.count(output_node.op()->name);
}
private:
@@ -55,19 +57,19 @@ class ContainOpSelector: public SubgraphSelector {
class DefaultSubgraphProperty: public SubgraphProperty {
public:
static SubgraphPropertyPtr Create() { return std::make_shared<DefaultSubgraphProperty>(); }
- virtual nnvm::ObjectPtr CreateSubgraphNode(const nnvm::Symbol &sym,
- const int subgraph_id = 0) const {
+ nnvm::ObjectPtr CreateSubgraphNode(const nnvm::Symbol &sym,
+ const int subgraph_id = 0) const override {
nnvm::ObjectPtr n = nnvm::Node::Create();
n->attrs.op = Op::Get("_CachedOp");
n->attrs.name = "_CachedOp" + std::to_string(subgraph_id);
n->attrs.subgraphs.push_back(std::make_shared<nnvm::Symbol>(sym));
std::vector<std::pair<std::string, std::string> > flags{{"static_alloc", "true"}};
- n->attrs.parsed = CachedOpPtr(new CachedOp(sym, flags));
+ n->attrs.parsed = std::make_shared<CachedOp>(sym, flags);
return n;
}
- virtual SubgraphSelectorPtr CreateSubgraphSelector() const {
+ SubgraphSelectorPtr CreateSubgraphSelector() const override {
return std::make_shared<ContainOpSelector>(
this->GetAttr<std::unordered_set<std::string>>("op_names"));
}
diff --git a/src/operator/subgraph/default_subgraph_property_v2.cc b/src/operator/subgraph/default_subgraph_property_v2.cc
index 65aaeb1..7c94230 100644
--- a/src/operator/subgraph/default_subgraph_property_v2.cc
+++ b/src/operator/subgraph/default_subgraph_property_v2.cc
@@ -18,6 +18,8 @@
*/
+#include <memory>
+
#include "./common.h"
#include "./subgraph_property.h"
#include "../../imperative/cached_op.h"
@@ -68,7 +70,7 @@ class DefaultSubgraphProperty: public SubgraphProperty {
n->attrs.subgraphs.push_back(std::make_shared<nnvm::Symbol>(sym));
std::vector<std::pair<std::string, std::string> > flags{{"static_alloc", "true"}};
- n->attrs.parsed = CachedOpPtr(new CachedOp(sym, flags));
+ n->attrs.parsed = std::make_shared<CachedOp>(sym, flags);
return n;
}
diff --git a/src/profiler/aggregate_stats.cc b/src/profiler/aggregate_stats.cc
index 86791eb..9d56dd3 100644
--- a/src/profiler/aggregate_stats.cc
+++ b/src/profiler/aggregate_stats.cc
@@ -235,8 +235,8 @@ void AggregateStats::DumpJson(std::ostream& os, int sort_by, int ascending) {
<< " }" << std::endl
<< "," << std::endl
<< " \"Unit\": {" << std::endl
- << " \"Time\": \"ms\"," << std::endl
- << " \"Memory\": \"kB\"" << std::endl
+ << R"( "Time": "ms",)" << std::endl
+ << R"( "Memory": "kB")" << std::endl
<< " }" << std::endl
<< "}" << std::endl
<< std::flush;
diff --git a/src/profiler/profiler.cc b/src/profiler/profiler.cc
index 13ab462..080d045 100644
--- a/src/profiler/profiler.cc
+++ b/src/profiler/profiler.cc
@@ -154,9 +154,9 @@ void Profiler::SetConfig(int mode,
*/
void Profiler::EmitPid(std::ostream *os, const std::string& name, size_t pid) {
(*os) << " {\n"
- << " \"ph\": \"" << static_cast<char>(ProfileStat::kMetadata) << "\",\n"
+ << R"( "ph": ")" << static_cast<char>(ProfileStat::kMetadata) << "\",\n"
<< " \"args\": {\n"
- << " \"name\": \"" << name << "\"\n"
+ << R"( "name": ")" << name << "\"\n"
<< " },\n"
<< " \"pid\": " << pid << ",\n"
<< " \"name\": \"process_name\"\n"
@@ -246,7 +246,7 @@ void Profiler::DumpProfile(bool perform_cleanup) {
if (last_pass) {
file << "\n" << std::endl;
file << " ]," << std::endl;
- file << " \"displayTimeUnit\": \"ms\"" << std::endl;
+ file << R"( "displayTimeUnit": "ms")" << std::endl;
file << "}" << std::endl;
}
enable_output_ = continuous_dump_ && !last_pass; // If we're appending, then continue.
diff --git a/src/resource.cc b/src/resource.cc
index 9f5ecaf..28e24e5 100644
--- a/src/resource.cc
+++ b/src/resource.cc
@@ -31,6 +31,7 @@
#include <mxnet/resource.h>
#include <limits>
#include <atomic>
+#include <memory>
#include "./common/lazy_alloc_array.h"
#include "./common/utils.h"
#include "./common/cuda_utils.h"
@@ -91,8 +92,7 @@ struct SpaceAllocator {
// Implements resource manager
class ResourceManagerImpl : public ResourceManager {
public:
- ResourceManagerImpl() noexcept(false)
- : global_seed_(0) {
+ ResourceManagerImpl() noexcept(false) {
cpu_temp_space_copy_ = dmlc::GetEnv("MXNET_CPU_TEMP_COPY", 4);
gpu_temp_space_copy_ = dmlc::GetEnv("MXNET_GPU_TEMP_COPY", 1);
cpu_native_rand_copy_ = dmlc::GetEnv("MXNET_CPU_PARALLEL_RAND_COPY", 1);
@@ -102,14 +102,14 @@ class ResourceManagerImpl : public ResourceManager {
#endif // MXNET_USE_CUDNN == 1
engine_ref_ = Engine::_GetSharedRef();
storage_ref_ = Storage::_GetSharedRef();
- cpu_rand_.reset(new ResourceRandom<cpu>(
- Context::CPU(), global_seed_));
- cpu_space_.reset(new ResourceTempSpace<ResourceRequest::kTempSpace>(
- Context::CPU(), cpu_temp_space_copy_));
- cpu_parallel_rand_.reset(new ResourceParallelRandom<cpu>(
- Context::CPU(), cpu_native_rand_copy_, global_seed_));
+ cpu_rand_ = std::make_unique<ResourceRandom<cpu>>(
+ Context::CPU(), global_seed_);
+ cpu_space_ = std::make_unique<ResourceTempSpace<ResourceRequest::kTempSpace>>(
+ Context::CPU(), cpu_temp_space_copy_);
+ cpu_parallel_rand_ = std::make_unique<ResourceParallelRandom<cpu>>(
+ Context::CPU(), cpu_native_rand_copy_, global_seed_);
}
- ~ResourceManagerImpl() {
+ ~ResourceManagerImpl() override {
// need explicit delete, before engine get killed
cpu_rand_.reset(nullptr);
cpu_space_.reset(nullptr);
@@ -390,7 +390,7 @@ class ResourceManagerImpl : public ResourceManager {
/*! \brief Reference to the storage */
std::shared_ptr<Storage> storage_ref_;
/*! \brief internal seed to the random number generator */
- uint32_t global_seed_;
+ uint32_t global_seed_{0};
/*! \brief CPU random number resources */
std::unique_ptr<ResourceRandom<cpu> > cpu_rand_;
/*! \brief CPU temp space resources */
diff --git a/src/runtime/registry.cc b/src/runtime/registry.cc
index 276c1ba..d151180 100644
--- a/src/runtime/registry.cc
+++ b/src/runtime/registry.cc
@@ -44,7 +44,7 @@ struct Registry::Manager {
std::mutex mutex;
// vtable for extension type is not suported for now
- Manager() {}
+ Manager() = default;
static Manager* Global() {
// We deliberately leak the Manager instance, to avoid leak sanitizers
diff --git a/src/storage/storage.cc b/src/storage/storage.cc
index 438a6b8..f359b30 100644
--- a/src/storage/storage.cc
+++ b/src/storage/storage.cc
@@ -44,7 +44,7 @@ class StorageImpl : public Storage {
void SharedIncrementRefCount(Handle handle) override;
StorageImpl() = default;
- virtual ~StorageImpl() = default;
+ ~StorageImpl() override = default;
private:
std::shared_ptr<StorageManager> storage_manager(const Context &ctx) {
diff --git a/tests/cpp/engine/thread_local_test.cc b/tests/cpp/engine/thread_local_test.cc
index f842b1d..6801b37 100644
--- a/tests/cpp/engine/thread_local_test.cc
+++ b/tests/cpp/engine/thread_local_test.cc
@@ -23,7 +23,6 @@
* \brief Tests thread safety and lifetime of thread local store
*/
#include <gtest/gtest.h>
-#include <time.h>
#include <dmlc/logging.h>
#include <dmlc/thread_group.h>
#include <dmlc/omp.h>
@@ -31,6 +30,7 @@
#include <mxnet/engine.h>
#include <mxnet/ndarray.h>
#include <dmlc/timer.h>
+#include <ctime>
#include <cstdio>
#include <thread>
#include <chrono>
diff --git a/tests/cpp/engine/threaded_engine_test.cc b/tests/cpp/engine/threaded_engine_test.cc
index e1e3a53..11ca2c9 100644
--- a/tests/cpp/engine/threaded_engine_test.cc
+++ b/tests/cpp/engine/threaded_engine_test.cc
@@ -22,7 +22,6 @@
* \file threaded_engine_test.cc
* \brief threaded engine tests
*/
-#include <time.h>
#include <dmlc/logging.h>
#include <dmlc/thread_group.h>
#include <dmlc/omp.h>
@@ -31,6 +30,7 @@
#include <mxnet/engine.h>
#include <mxnet/ndarray.h>
#include <dmlc/timer.h>
+#include <ctime>
#include <cstdio>
#include <thread>
#include <chrono>
@@ -107,7 +107,7 @@ double EvaluateWorkloads(const std::vector<Workload>& workloads,
for (const auto& wl : workloads) {
if (wl.reads.size() == 0) continue;
- if (engine == NULL) {
+ if (engine == nullptr) {
EvaluateWorkload(wl, data);
} else {
auto func = [wl, data](RunContext ctx, Engine::CallbackOnComplete cb) {
@@ -152,13 +152,13 @@ TEST(Engine, RandSumExpr) {
std::vector<double> t(num_engine, 0.0);
std::vector<mxnet::Engine*> engine(num_engine);
- engine[0] = NULL;
+ engine[0] = nullptr;
engine[1] = mxnet::engine::CreateNaiveEngine();
engine[2] = mxnet::engine::CreateThreadedEnginePooled();
engine[3] = mxnet::engine::CreateThreadedEnginePerDevice();
for (int repeat = 0; repeat < num_repeat; ++repeat) {
- srand(time(NULL) + repeat);
+ srand(time(nullptr) + repeat);
int num_var = 100;
GenerateWorkload(10000, num_var, 2, 20, 1, 10, &workloads);
std::vector<std::vector<double>> data(num_engine);
diff --git a/tests/cpp/operator/batchnorm_test.cc b/tests/cpp/operator/batchnorm_test.cc
index 22bcb70..dab8c98 100644
--- a/tests/cpp/operator/batchnorm_test.cc
+++ b/tests/cpp/operator/batchnorm_test.cc
@@ -277,7 +277,7 @@ class BatchNormValidator : public test::op::Validator<DType, AccReal> {
typedef test::op::Validator<DType, AccReal> Super;
/*! \brief Only static functions in this class */
- BatchNormValidator() = delete;
+ BatchNormValidator() = delete; // NOLINT
/*! \brief Check batch norm output - 1D */
static void checkBatchNorm1D(const TBlob *blob) {
@@ -566,10 +566,9 @@ static const test::op::kwargs_t nfs_ugs_kwargs_nocudnn = {
#if !DISABLE_VALIDATION
static bool isUGS(const test::op::kwargs_t& kwargs) {
- for (test::op::kwargs_t::const_iterator i = kwargs.begin(),
- e = kwargs.end(); i != e; ++i) {
- if (!i->first.compare("use_global_stats")) {
- return i->second.compare("True") == 0;
+ for (const auto & kwarg : kwargs) {
+ if (!kwarg.first.compare("use_global_stats")) {
+ return kwarg.second.compare("True") == 0;
}
}
return false;
@@ -725,8 +724,8 @@ static test::op::OpInfoPair<OperatorProp1, OperatorProp2, OperatorExecutor> test
size_t thisCount = 0;
- typedef typename OperatorExecutor::DataType DType;
- typedef typename OperatorExecutor::AccRealType AccReal;
+ using DType = typename OperatorExecutor::DataType;
+ using AccReal = typename OperatorExecutor::AccRealType;
do {
const bool isLast = thisCount == cycleCount - 1;
@@ -1288,8 +1287,8 @@ static void testSaveAndLoad(const std::vector<size_t>& dims,
TEST(BATCH_NORM, TestChannelAxisSaveAndLoad) {
std::cout << std::endl << std::flush;
- typedef float DType;
- typedef float AccReal;
+ using DType = float;
+ using AccReal = float;
const std::vector<std::vector<DType>> myData =
{ { 1.0f, 1.0f, 1.0f, 1.0f },
@@ -1346,8 +1345,8 @@ static void runChannelAxisTest(
const size_t numberOfPasses = 5
) {
- typedef float DType;
- typedef float AccReal;
+ using DType = float;
+ using AccReal = float;
size_t spatialSize = 1;
for (size_t x = 1, n = shape.size(); x < n; ++x) {
diff --git a/tests/cpp/operator/runner/core_op_runner_test.cc b/tests/cpp/operator/runner/core_op_runner_test.cc
index 96458cd..6e6cb91 100644
--- a/tests/cpp/operator/runner/core_op_runner_test.cc
+++ b/tests/cpp/operator/runner/core_op_runner_test.cc
@@ -148,7 +148,7 @@ TEST(CORE_OP_RUNNER, ExecuteBidirectionalRunnerSimpleUnary) {
}
TEST(CORE_OP_RUNNER, ExecuteBidirectionalRunner) {
- typedef float DType;
+ using DType = float;
mxnet::TShape shape({5, 5});
for (const std::pair<std::string, std::string>& i : test_binary_operators) {
const char *op_name = i.first.c_str();
@@ -163,7 +163,7 @@ TEST(CORE_OP_RUNNER, ExecuteBidirectionalRunner) {
* \brief Test RunBidirectional dot product, which has different shaped inputs and outputs
*/
TEST(CORE_OP_RUNNER, ExecuteBidirectionalRunnerDotProduct) {
- typedef float DType;
+ using DType = float;
const char *op_name = "dot";
const char *backward_op_name = "_backward_dot";
test::op::CoreOperatorRunner<DType> runner;
@@ -179,7 +179,7 @@ TEST(CORE_OP_RUNNER, ExecuteBidirectionalRunnerDotProduct) {
* \brief Timing tests for CPU
*/
TEST(CORE_OP_RUNNER, TimingCPUSimpleUnary) {
- typedef float DType;
+ using DType = float;
const char *op_name = "relu";
@@ -210,7 +210,7 @@ TEST(CORE_OP_RUNNER, TimingCPUSimpleUnary) {
}
TEST(CORE_OP_RUNNER, TimingCPUBinary) {
- typedef float DType;
+ using DType = float;
const char *op_name = "elemwise_add";
const char *backward_op_name = "_backward_add";
@@ -246,7 +246,7 @@ TEST(CORE_OP_RUNNER, TimingCPUBinary) {
* \brief Performance run dot product, which has different shaped inputs and outputs
*/
TEST(CORE_OP_RUNNER, TimingCPUBinaryDotProduct) {
- typedef float DType;
+ using DType = float;
const char *op_name = "dot";
const char *backward_op_name = "_backward_dot";
diff --git a/tests/cpp/storage/storage_test.cc b/tests/cpp/storage/storage_test.cc
index 3934c09..d9e7d8b 100644
--- a/tests/cpp/storage/storage_test.cc
+++ b/tests/cpp/storage/storage_test.cc
@@ -21,11 +21,11 @@
* \file storage_test.cc
* \brief cpu/gpu storage tests
*/
-#include <stdlib.h>
#include <gtest/gtest.h>
#include <dmlc/logging.h>
#include <mxnet/storage.h>
#include <cstdio>
+#include <cstdlib>
#include "test_util.h"
TEST(Storage, Basic_CPU) {
diff --git a/tools/im2rec.cc b/tools/im2rec.cc
index 989b314..ddb3f7f 100644
--- a/tools/im2rec.cc
+++ b/tools/im2rec.cc
@@ -247,7 +247,7 @@ int main(int argc, char *argv[]) {
if (unchanged != 1) {
cv::Mat img = cv::imdecode(decode_buf, color_mode);
- CHECK(img.data != NULL) << "OpenCV decode fail:" << path;
+ CHECK(img.data != nullptr) << "OpenCV decode fail:" << path;
cv::Mat res = img;
if (new_size > 0) {
if (center_crop) {