From a722db45c6014f3c3874752f4f3cf1b7106e4504 Mon Sep 17 00:00:00 2001 From: Jake Lee Date: Tue, 7 May 2019 01:09:02 +0800 Subject: [PATCH 01/15] [Dependency Update] Upgrade openssl to 1.1.1b (#14837) * upgrade openssl to 1.1.0k * fix the wrong version * upgrade to the latest version * avoid lib to be treated as file instead of folder --- tools/dependencies/openssl.sh | 2 +- tools/staticbuild/build_lib.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/dependencies/openssl.sh b/tools/dependencies/openssl.sh index 8e2372c9075a..78673a3ac84b 100755 --- a/tools/dependencies/openssl.sh +++ b/tools/dependencies/openssl.sh @@ -19,7 +19,7 @@ # This script builds the static library of openssl that can be used as dependency of mxnet. set -ex -OPENSSL_VERSION=1.0.2l +OPENSSL_VERSION=1.1.1b if [[ ! -f $DEPS_PATH/lib/libssl.a ]] || [[ ! -f $DEPS_PATH/lib/libcrypto.a ]]; then # download and build openssl >&2 echo "Building openssl..." diff --git a/tools/staticbuild/build_lib.sh b/tools/staticbuild/build_lib.sh index 472bf57b101e..927c15d1dabc 100755 --- a/tools/staticbuild/build_lib.sh +++ b/tools/staticbuild/build_lib.sh @@ -44,6 +44,9 @@ if [[ $VARIANT == *mkl ]]; then MKLDNN_LIBFILE='libmkldnn.0.dylib' fi $MAKE DEPS_PATH=$DEPS_PATH mkldnn + if [ ! -d lib ]; then + mkdir lib + fi cp 3rdparty/mkldnn/build/install/lib/$IOMP_LIBFILE lib cp 3rdparty/mkldnn/build/install/lib/$MKLML_LIBFILE lib cp 3rdparty/mkldnn/build/install/lib/$MKLDNN_LIBFILE lib From 0255dd6d84967ad9c18cdc711ff76f588a62ab7c Mon Sep 17 00:00:00 2001 From: Jake Lee Date: Tue, 7 May 2019 06:55:10 +0800 Subject: [PATCH 02/15] [Dependency Update] Upgrade cuDNN & NCCL (#14884) * upgrade cuDNN & NCCL * retrigger CI --- tools/setup_gpu_build_tools.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/setup_gpu_build_tools.sh b/tools/setup_gpu_build_tools.sh index 167d4c6a6e13..8fd1edb9e4cc 100755 --- a/tools/setup_gpu_build_tools.sh +++ b/tools/setup_gpu_build_tools.sh @@ -31,14 +31,14 @@ if [[ $VARIANT == cu100* ]]; then CUDA_VERSION='10.0.130-1' CUDA_PATCH_VERSION='10.0.130-1' LIBCUDA_VERSION='410.48-0ubuntu1' - LIBCUDNN_VERSION='7.3.1.20-1+cuda10.0' - LIBNCCL_VERSION='2.3.4-1+cuda9.2' + LIBCUDNN_VERSION='7.5.1.10-1+cuda10.0' + LIBNCCL_VERSION='2.4.2-1+cuda10.0' elif [[ $VARIANT == cu92* ]]; then CUDA_VERSION='9.2.148-1' CUDA_PATCH_VERSION='9.2.148.1-1' LIBCUDA_VERSION='396.44-0ubuntu1' - LIBCUDNN_VERSION='7.3.1.20-1+cuda9.2' - LIBNCCL_VERSION='2.3.4-1+cuda9.2' + LIBCUDNN_VERSION='7.5.1.10-1+cuda9.2' + LIBNCCL_VERSION='2.4.2-1+cuda9.2' elif [[ $VARIANT == cu91* ]]; then CUDA_VERSION='9.1.85-1' CUDA_PATCH_VERSION='9.1.85.3-1' @@ -49,8 +49,8 @@ elif [[ $VARIANT == cu90* ]]; then CUDA_VERSION='9.0.176-1' CUDA_PATCH_VERSION='9.0.176.3-1' LIBCUDA_VERSION='384.145-0ubuntu1' - LIBCUDNN_VERSION='7.3.1.20-1+cuda9.0' - LIBNCCL_VERSION='2.3.4-1+cuda9.0' + LIBCUDNN_VERSION='7.5.1.10-1+cuda9.0' + LIBNCCL_VERSION='2.4.2-1+cuda9.0' elif [[ $VARIANT == cu80* ]]; then CUDA_VERSION='8.0.61-1' CUDA_PATCH_VERSION='8.0.61.2-1' From fdd45cf5a01d4f7ee6888a8a49e282a4c178b1f3 Mon Sep 17 00:00:00 2001 From: Yuxi Hu Date: Mon, 6 May 2019 18:38:17 -0700 Subject: [PATCH 03/15] Add mkldnn_version.h to pip package (#14899) * add mkldnn_version.h to pip package * add headers from build/install/include folder --- tools/pip/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/pip/setup.py b/tools/pip/setup.py index 71e2549a3f19..fd9ce41c2a80 100644 --- a/tools/pip/setup.py +++ b/tools/pip/setup.py @@ -150,7 +150,7 @@ def has_ext_modules(self): package_data['mxnet'].append('mxnet/libmklml_intel.so') package_data['mxnet'].append('mxnet/libiomp5.so') package_data['mxnet'].append('mxnet/libmkldnn.so.0') - shutil.copytree(os.path.join(CURRENT_DIR, 'mxnet-build/3rdparty/mkldnn/include'), + shutil.copytree(os.path.join(CURRENT_DIR, 'mxnet-build/3rdparty/mkldnn/build/install/include'), os.path.join(CURRENT_DIR, 'mxnet/include/mkldnn')) if platform.system() == 'Linux': shutil.copy(os.path.join(os.path.dirname(LIB_PATH[0]), 'libgfortran.so.3'), os.path.join(CURRENT_DIR, 'mxnet')) From 5bda980c5e952e85ced4d9f42e8fdf1ad0affff8 Mon Sep 17 00:00:00 2001 From: rongzha1 Date: Tue, 7 May 2019 13:30:12 +0800 Subject: [PATCH 04/15] fix add_n bug: when input mem overlap with output mem, results is wrong (#14889) * fix add_n bug: when input mem overlap with output mem, results is wrong * add testcase for bugfix verification * add more comments for modification and change testcase name to test_add_n --- src/ndarray/ndarray_function.cc | 6 +++++- tests/python/unittest/test_operator.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/ndarray/ndarray_function.cc b/src/ndarray/ndarray_function.cc index 8f72bc259afc..335856356534 100644 --- a/src/ndarray/ndarray_function.cc +++ b/src/ndarray/ndarray_function.cc @@ -207,7 +207,11 @@ void ElementwiseSumContainsDnsImpl(mshadow::Stream* s, using namespace mxnet::op::mxnet_op; const TBlob& out_data = out->data(); MSHADOW_TYPE_SWITCH(out->dtype(), DType, { // data type - Kernel::Launch(s, out_data.Size(), out_data.dptr()); + // Do not set_zero when output mem inplace with input[0] mem + // Now for add_n OP, output mem can be in-placed with the first input + if (nds[0].data().dptr() != out_data.dptr()) { + Kernel::Launch(s, out_data.Size(), out_data.dptr()); + } for (size_t i = 0; i < nds.size(); ++i) { const NDArray& nd = nds[i]; const TBlob& nd_data = nd.data(); diff --git a/tests/python/unittest/test_operator.py b/tests/python/unittest/test_operator.py index d7761c76aa29..7db07596d7f8 100644 --- a/tests/python/unittest/test_operator.py +++ b/tests/python/unittest/test_operator.py @@ -8357,6 +8357,18 @@ def check_concat(shape1, shape2, axis): check_concat((8, 0, 0), (8, 0, 0), 2) +@with_seed() +def test_add_n(): + data_shape = (2, 2) + input_num = 5 + data = [mx.nd.random.uniform(shape=data_shape) for i in range(input_num)] + rslt = mx.nd.zeros(shape=data_shape) + for i in range(input_num): + rslt += data[i] + add_n_rslt = mx.nd.add_n(*data, out=data[0]) + assert_almost_equal(rslt.asnumpy(), add_n_rslt.asnumpy(), atol=1e-5) + + if __name__ == '__main__': import nose nose.runmodule() From 08895b71111e11eaf60280fa59aca93fb4f62193 Mon Sep 17 00:00:00 2001 From: Anirudh Date: Tue, 7 May 2019 05:10:33 -0700 Subject: [PATCH 05/15] Fix the return type of sparse.clip operator (#14856) * stype fix * ut * retrigger ci * Retrigger ci --- src/operator/tensor/matrix_op.cc | 2 +- tests/python/unittest/test_sparse_ndarray.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/operator/tensor/matrix_op.cc b/src/operator/tensor/matrix_op.cc index b80c9a54510f..9e6bead7229c 100644 --- a/src/operator/tensor/matrix_op.cc +++ b/src/operator/tensor/matrix_op.cc @@ -769,7 +769,7 @@ parameter values: if (!dispatched && param.a_min <= 0.0 && param.a_max >= 0.0) { const int this_stype = (*in_attrs)[0]; if (this_stype != kUndefinedStorage) { - dispatched = storage_type_assign(&(*out_attrs)[0], kRowSparseStorage, + dispatched = storage_type_assign(&(*out_attrs)[0], mxnet::NDArrayStorageType(this_stype), dispatch_mode, DispatchMode::kFComputeEx); } } diff --git a/tests/python/unittest/test_sparse_ndarray.py b/tests/python/unittest/test_sparse_ndarray.py index 7600ea944e83..3b4c684e8696 100644 --- a/tests/python/unittest/test_sparse_ndarray.py +++ b/tests/python/unittest/test_sparse_ndarray.py @@ -915,6 +915,7 @@ def check_fluent_regular(stype, func, kwargs, shape=(5, 17), equal_nan=False): check_fluent_regular('csr', 'slice', {'begin': (2, 5), 'end': (4, 7)}, shape=(5, 17)) check_fluent_regular('row_sparse', 'clip', {'a_min': -0.25, 'a_max': 0.75}) + check_fluent_regular('csr', 'clip', {'a_min': -0.25, 'a_max': 0.75}) for func in ['sum', 'mean', 'norm']: check_fluent_regular('csr', func, {'axis': 0}) From 527573ec2b9b2696ffcafd1570cd94e2187f4c32 Mon Sep 17 00:00:00 2001 From: stephenrawls <10453511+stephenrawls@users.noreply.github.com> Date: Tue, 7 May 2019 13:52:09 -0700 Subject: [PATCH 06/15] Add support for fast variable-length LSTM (#14208) * initial commit for variable length sequence support w/ cudnn * removing check about all vectors on same context (need to add back in) * fixing commented-out code to actually coment-out what I wanted * fixing cudnn layout type to be unpacked in var-length seq case * looks like param.batch_size_ etc weren't previousy getting set in cudnn operator code. still doesn't fix cudnn error though * must call cudnnSetRNNPaddingMode() to enable unpacked padded sequences * cleaning up & adding unit tests * cleanign up * cleanign up * removing stringstream and checking for cudnn >= 7.2 * fixing whitespace formatting errors; adding ifdef version guard for cudnn padding * fixing a few syntax errors * changing order of arguments in hybird_forward for backward compatibility * more build validation fixes * using emplace_back to make linter happy * adding import of mxnet.ndarray * switching order of sequence_length in hybrid_forward again * adding __call__ override to rnn layer to handle optional sequence_length argument * whoops swapped order of args in one place but not the other * changing type() to isinstance() to make linter happy * changing lstm var seq length call to explciitly name sequence_length parameter * fixing bad scope of if-statement checking state outputs * resolving reviewer comments * making linter happy by putting var definitions in appropriate ifdef * fixing linter again * fixing whitespace issues with linter * fixing whitespace issues with linter * fixing some typos that emerged fixing linter * linter * fixing more whitespace issues * only access kTempSpace if on gpu * removing tabs that slipped in * fixing too-long line * changing ifdef guard to be more generic * reverting change so whitespace stays same w/ master * adding todo comment --- cpp-package/example/charRNN.cpp | 5 +- python/mxnet/gluon/rnn/rnn_layer.py | 41 ++-- src/operator/rnn-inl.h | 280 ++++++++++++++++++++-------- src/operator/rnn.cc | 78 +++++--- src/operator/rnn.cu | 1 + tests/python/gpu/test_gluon_gpu.py | 55 ++++++ 6 files changed, 343 insertions(+), 117 deletions(-) diff --git a/cpp-package/example/charRNN.cpp b/cpp-package/example/charRNN.cpp index ac5faa47b58c..94e9455c5941 100644 --- a/cpp-package/example/charRNN.cpp +++ b/cpp-package/example/charRNN.cpp @@ -164,8 +164,9 @@ Symbol LSTMWithBuiltInRNNOp(int num_lstm_layer, int sequence_length, int input_d auto rnn_h_init = Symbol::Variable("LSTM_init_h"); auto rnn_c_init = Symbol::Variable("LSTM_init_c"); auto rnn_params = Symbol::Variable("LSTM_parameters"); // See explanations near RNNXavier class - auto rnn = RNN(embed, rnn_params, rnn_h_init, rnn_c_init, num_hidden, num_lstm_layer, - RNNMode::kLstm, false, dropout, !isTrain); + auto variable_sequence_length = Symbol::Variable("sequence_length"); + auto rnn = RNN(embed, rnn_params, rnn_h_init, rnn_c_init, variable_sequence_length, num_hidden, + num_lstm_layer, RNNMode::kLstm, false, dropout, !isTrain); auto hidden = Reshape(rnn[0], Shape(), false, Shape(0, num_hidden), false); auto cls_weight = Symbol::Variable("cls_weight"); diff --git a/python/mxnet/gluon/rnn/rnn_layer.py b/python/mxnet/gluon/rnn/rnn_layer.py index 6dfec43a8b5f..b3cc596282a7 100644 --- a/python/mxnet/gluon/rnn/rnn_layer.py +++ b/python/mxnet/gluon/rnn/rnn_layer.py @@ -37,7 +37,7 @@ def __init__(self, hidden_size, num_layers, layout, i2h_bias_initializer, h2h_bias_initializer, mode, projection_size, h2r_weight_initializer, lstm_state_clip_min, lstm_state_clip_max, lstm_state_clip_nan, - dtype, **kwargs): + dtype, use_sequence_length=False, **kwargs): super(_RNNLayer, self).__init__(**kwargs) assert layout in ('TNC', 'NTC'), \ "Invalid layout %s; must be one of ['TNC' or 'NTC']"%layout @@ -58,6 +58,7 @@ def __init__(self, hidden_size, num_layers, layout, self._lstm_state_clip_max = lstm_state_clip_max self._lstm_state_clip_nan = lstm_state_clip_nan self._dtype = dtype + self._use_sequence_length = use_sequence_length self._gates = {'rnn_relu': 1, 'rnn_tanh': 1, 'lstm': 4, 'gru': 3}[mode] @@ -219,29 +220,39 @@ def begin_state(self, batch_size=0, func=ndarray.zeros, **kwargs): states.append(func(name='%sh0_%d'%(self.prefix, i), **info)) return states - def hybrid_forward(self, F, inputs, states=None, **kwargs): - if F is ndarray: - batch_size = inputs.shape[self._layout.find('N')] - skip_states = states is None - if skip_states: - if F is ndarray: + def __call__(self, inputs, states=None, sequence_length=None, **kwargs): + self.skip_states = states is None + if states is None: + if isinstance(inputs, ndarray.NDArray): + batch_size = inputs.shape[self._layout.find('N')] states = self.begin_state(batch_size, ctx=inputs.context, dtype=inputs.dtype) else: states = self.begin_state(0, func=symbol.zeros) if isinstance(states, tensor_types): states = [states] + + if self._use_sequence_length: + return super(_RNNLayer, self).__call__(inputs, states, sequence_length, **kwargs) + else: + return super(_RNNLayer, self).__call__(inputs, states, **kwargs) + + + def hybrid_forward(self, F, inputs, states, sequence_length=None, **kwargs): + if F is ndarray: + batch_size = inputs.shape[self._layout.find('N')] + if F is ndarray: for state, info in zip(states, self.state_info(batch_size)): if state.shape != info['shape']: raise ValueError( "Invalid recurrent state shape. Expecting %s, got %s."%( str(info['shape']), str(state.shape))) - out = self._forward_kernel(F, inputs, states, **kwargs) + out = self._forward_kernel(F, inputs, states, sequence_length, **kwargs) # out is (output, state) - return out[0] if skip_states else out + return out[0] if self.skip_states else out - def _forward_kernel(self, F, inputs, states, **kwargs): + def _forward_kernel(self, F, inputs, states, sequence_length, **kwargs): """ forward using CUDNN or CPU kenrel""" if self._layout == 'NTC': inputs = F.swapaxes(inputs, dim1=0, dim2=1) @@ -261,14 +272,20 @@ def _forward_kernel(self, F, inputs, states, **kwargs): params = F._internal._rnn_param_concat(*params, dim=0) - rnn = F.RNN(inputs, params, *states, state_size=self._hidden_size, - projection_size=self._projection_size, + if self._use_sequence_length: + rnn_args = states + [sequence_length] + else: + rnn_args = states + + rnn = F.RNN(inputs, params, *rnn_args, use_sequence_length=self._use_sequence_length, + state_size=self._hidden_size, projection_size=self._projection_size, num_layers=self._num_layers, bidirectional=self._dir == 2, p=self._dropout, state_outputs=True, mode=self._mode, lstm_state_clip_min=self._lstm_state_clip_min, lstm_state_clip_max=self._lstm_state_clip_max, lstm_state_clip_nan=self._lstm_state_clip_nan) + if self._mode == 'lstm': outputs, states = rnn[0], [rnn[1], rnn[2]] else: diff --git a/src/operator/rnn-inl.h b/src/operator/rnn-inl.h index 37f21ce6d126..d164333953f2 100644 --- a/src/operator/rnn-inl.h +++ b/src/operator/rnn-inl.h @@ -27,7 +27,7 @@ #define MXNET_OPERATOR_RNN_INL_H_ #define MXNET_USE_CUDNN_RNN MXNET_USE_CUDNN == 1 && CUDNN_MAJOR >= 5 -#define USE_CUDNN_LSTM_PROJ MXNET_USE_CUDNN == 1 && CUDNN_VERSION >= 7200 +#define MXNET_USE_CUDNN_GE_7200 MXNET_USE_CUDNN == 1 && CUDNN_VERSION >= 7200 #include #include @@ -39,6 +39,7 @@ #include #include #include + #include "./math.h" #include "./math_functions-inl.h" #include "./operator_common.h" @@ -48,10 +49,10 @@ namespace mxnet { namespace op { namespace rnn_enum { - enum RNNOpInputs {kData, kParams, kState, kStateCell}; + enum RNNOpInputs {kData, kParams, kState, kStateCell, kSequenceLength}; enum RNNOpOutputs {kOut, kStateOut, kStateCellOut}; enum RNNModeType {kRnnRelu, kRnnTanh, kLstm, kGru}; - enum RNNOpResource {kCuDNNDropoutDescSpace}; + enum RNNOpResource {kTempSpace, kCuDNNDropoutDescSpace}; } inline int GetRnnParamSize(int num_layer, @@ -166,6 +167,8 @@ struct RNNParam : public dmlc::Parameter { int mode; float p; int seq_length_, batch_size_, input_size_; + + bool use_sequence_length; dmlc::optional projection_size; dmlc::optional lstm_state_clip_min, lstm_state_clip_max; bool lstm_state_clip_nan; @@ -212,9 +215,22 @@ struct RNNParam : public dmlc::Parameter { .set_default(false) .describe("Whether to stop NaN from propagating in state by clipping it to min/max. " "If clipping range is not specified, this option is ignored."); + + DMLC_DECLARE_FIELD(use_sequence_length) + .set_default(false) + .describe( + "If set to true, this layer takes in an extra input parameter " + "`sequence_length` " + "to specify variable length sequence"); } }; +inline size_t GetNumInputArguments(RNNParam param_) { + size_t num_inputs = (param_.mode == rnn_enum::kLstm) ? 4U : 3U; + if (param_.use_sequence_length) num_inputs += 1U; + return num_inputs; +} + /** * @params: ws: Temp workspace for gemm's output storage. * rs: Reserve space of forward intermediate data used for training. @@ -379,7 +395,7 @@ void RNNBackward(DType* ws, } } -template +template class RNNOp { public: RNNParam param_; @@ -415,7 +431,7 @@ class RNNOp { default: LOG(FATAL) << "Not implmented"; } -#if USE_CUDNN_LSTM_PROJ +#if MXNET_USE_CUDNN_GE_7200 if (param_.projection_size.has_value()) { CHECK_EQ(param_.mode, rnn_enum::kLstm) << "Projection is only supported for LSTM."; @@ -426,7 +442,7 @@ class RNNOp { CHECK(!param_.projection_size.has_value()) << "Projection is only supported for LSTM with CuDNN version later than 7.1.1."; #endif -#if USE_CUDNN_LSTM_PROJ +#if MXNET_USE_CUDNN_GE_7200 if (param_.lstm_state_clip_min.has_value() || param_.lstm_state_clip_max.has_value()) { CHECK_EQ(param_.mode, rnn_enum::kLstm) @@ -459,7 +475,7 @@ class RNNOp { CUDNN_CALL(cudnnCreateRNNDescriptor(&rnn_desc_)); CUDNN_CALL(cudnnCreateDropoutDescriptor(&dropout_desc_)); - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnCreateRNNDataDescriptor(&x_data_desc_)); CUDNN_CALL(cudnnCreateRNNDataDescriptor(&y_data_desc_)); CUDNN_CALL(cudnnCreateRNNDataDescriptor(&dx_data_desc_)); @@ -515,7 +531,7 @@ class RNNOp { Storage::Get()->Free(temp_space_); Storage::Get()->Free(reserve_space_); } - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnDestroyRNNDataDescriptor(x_data_desc_)); CUDNN_CALL(cudnnDestroyRNNDataDescriptor(y_data_desc_)); CUDNN_CALL(cudnnDestroyRNNDataDescriptor(dx_data_desc_)); @@ -541,8 +557,9 @@ class RNNOp { using namespace mshadow; using namespace mshadow::expr; CHECK(param_.p >= 0.0f && param_.p < 1.0f) - << "unsupported dropout value, should be 0 <= dropout < 1"; - size_t num_inputs = (param_.mode == rnn_enum::kLstm) ? 4 : 3; + << "unsupported dropout value, should be 0 <= dropout < 1"; + size_t num_inputs = GetNumInputArguments(param_); + // kOut size_t num_outputs = 1; if (param_.state_outputs) { @@ -553,6 +570,7 @@ class RNNOp { CHECK_EQ(in_data.size(), num_inputs); CHECK_EQ(out_data.size(), num_outputs); Stream *s = ctx.get_stream(); + // get input + output tensors Tensor x = in_data[rnn_enum::kData].get(s); Tensor w = in_data[rnn_enum::kParams].get(s); @@ -562,6 +580,7 @@ class RNNOp { param_.seq_length_ = x.shape_[0]; param_.batch_size_ = x.shape_[1]; param_.input_size_ = x.shape_[2]; + const int direction = param_.bidirectional ? 2 : 1; const int bsize = GetRnnBiasSize(param_.num_layers, param_.state_size, direction, param_.mode); DType* b_ptr = w.dptr_ + w.shape_[0] - bsize; @@ -570,65 +589,130 @@ class RNNOp { if (param_.state_outputs) { hy_ptr = out_data[rnn_enum::kStateOut].dptr(); } + + +#if MXNET_USE_CUDNN_GE_7200 + Tensor host_workspace; + int *sequence_length_cpu_int = NULL; + IType *sequence_length_cpu_itype = NULL; + + if (ctx_.dev_type == kGPU) { + int host_workspace_bytes = + param_.batch_size_ * sizeof(IType) + param_.batch_size_ * sizeof(int); + + host_workspace = + ctx.requested[rnn_enum::kTempSpace].get_host_space_typed<1, char>( + Shape1(host_workspace_bytes)); + + sequence_length_cpu_int = reinterpret_cast(host_workspace.dptr_); + sequence_length_cpu_itype = + reinterpret_cast(host_workspace.dptr_ + sizeof(int) * param_.batch_size_); + + (void)sequence_length_cpu_int; + (void)sequence_length_cpu_itype; + } +#endif + + + if (param_.use_sequence_length) { +#if MXNET_USE_CUDNN_GE_7200 + if (ctx_.dev_type == kCPU) { + LOG(FATAL) << "RNN use_sequence_length option is only available for cuDNN at the moment." + << " Not supported on CPU"; + } + + // We can assume we are on GPU for now + size_t seq_len_input_idx = rnn_enum::kSequenceLength; + if (param_.mode != rnn_enum::kLstm) { + seq_len_input_idx -= 1; + } + IType *sequence_length_ptr_gpu = (in_data[seq_len_input_idx].get(s)).dptr_; + + // Need to copy from GPU -> CPU, becuase cuDNN API requires this array on CPU memory. + // TODO(stephenrawls): In future, allow users to pass this array on the CPU so we don't have + // to do this copy For now however it is required as several places in backend assume that + // all data arrays share the same context. + CUDA_CALL(cudaMemcpy(sequence_length_cpu_itype, sequence_length_ptr_gpu, + sizeof(IType) * param_.batch_size_, cudaMemcpyDeviceToHost)); +#else + LOG(FATAL) << "RNN use_sequence_length option is only available for cuDNN version >= 7.2"; +#endif + } DType* cx_ptr = NULL; DType* cy_ptr = NULL; - if (param_.mode == rnn_enum::kLstm) + if (param_.mode == rnn_enum::kLstm) { cx_ptr = (in_data[rnn_enum::kStateCell].get(s)).dptr_; - if (param_.mode == rnn_enum::kLstm && param_.state_outputs) + } + if (param_.mode == rnn_enum::kLstm && param_.state_outputs) { cy_ptr = (out_data[rnn_enum::kStateCellOut].get(s)).dptr_; - + } CHECK_EQ(x.CheckContiguous(), true); CHECK_EQ(w.CheckContiguous(), true); CHECK_EQ(hx.CheckContiguous(), true); CHECK_EQ(y.CheckContiguous(), true); - #if MXNET_USE_CUDNN_RNN && defined(__CUDACC__) +#if MXNET_USE_CUDNN_RNN && defined(__CUDACC__) if (!init_cudnn_) { Init(ctx, s, in_data, out_data); } - #if USE_CUDNN_LSTM_PROJ - std::vector seqLengthArray(param_.batch_size_, param_.seq_length_); +#if MXNET_USE_CUDNN_GE_7200 + + cudnnRNNDataLayout_t layout_t; + + if (param_.use_sequence_length) { + // Note: Can't mempcy, sequence_length_ptr_cpu is of type Itype, not nescesarily int + for (int i = 0; i < param_.batch_size_; ++i) { + sequence_length_cpu_int[i] = sequence_length_cpu_itype[i]; + } + layout_t = CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED; + } else { + for (int i = 0; i < param_.batch_size_; ++i) { + sequence_length_cpu_int[i] = param_.seq_length_; + } + layout_t = CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED; + } + CUDNN_CALL(cudnnSetRNNDataDescriptor(x_data_desc_, dtype_, - CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED, + layout_t, param_.seq_length_, param_.batch_size_, param_.input_size_, - seqLengthArray.data(), - nullptr)); + sequence_length_cpu_int, + reinterpret_cast(&padding_fill_))); int out_size = (param_.projection_size.has_value()) ? param_.projection_size.value() : param_.state_size; out_size = (param_.bidirectional) ? (out_size * 2) : out_size; CUDNN_CALL(cudnnSetRNNDataDescriptor(y_data_desc_, dtype_, - CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED, + layout_t, param_.seq_length_, param_.batch_size_, out_size, - seqLengthArray.data(), - nullptr)); + sequence_length_cpu_int, + reinterpret_cast(&padding_fill_))); if (ctx.is_train) { CUDNN_CALL(cudnnSetRNNDataDescriptor(dx_data_desc_, dtype_, - CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED, + layout_t, param_.seq_length_, param_.batch_size_, param_.input_size_, - seqLengthArray.data(), - nullptr)); + sequence_length_cpu_int, + reinterpret_cast(&padding_fill_))); CUDNN_CALL(cudnnSetRNNDataDescriptor(dy_data_desc_, dtype_, - CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED, + layout_t, param_.seq_length_, param_.batch_size_, out_size, - seqLengthArray.data(), - nullptr)); + sequence_length_cpu_int, + reinterpret_cast(&padding_fill_))); } - #endif +#endif - #if USE_CUDNN_LSTM_PROJ +#if MXNET_USE_CUDNN_GE_7200 bool clip_state = param_.lstm_state_clip_min.has_value(); bool clip_nan = param_.lstm_state_clip_nan; CUDNN_CALL(cudnnRNNSetClip(s->dnn_handle_, @@ -637,10 +721,10 @@ class RNNOp { clip_nan ? CUDNN_NOT_PROPAGATE_NAN : CUDNN_PROPAGATE_NAN, clip_state ? param_.lstm_state_clip_min.value() : 0.0, clip_state ? param_.lstm_state_clip_max.value() : 0.0)); - #endif +#endif if (ctx.is_train) { - #if USE_CUDNN_LSTM_PROJ +#if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnRNNForwardTrainingEx(s->dnn_handle_, rnn_desc_, x_data_desc_, @@ -669,7 +753,7 @@ class RNNOp { workspace_byte_, reserve_space_.dptr, reserve_space_byte_)); - #else +#else CUDNN_CALL(cudnnRNNForwardTraining(s->dnn_handle_, rnn_desc_, param_.seq_length_, @@ -691,9 +775,9 @@ class RNNOp { workspace_byte_, reserve_space_.dptr, reserve_space_byte_)); - #endif +#endif } else { - #if USE_CUDNN_LSTM_PROJ +#if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnRNNForwardInferenceEx(s->dnn_handle_, rnn_desc_, x_data_desc_, @@ -720,7 +804,7 @@ class RNNOp { nullptr, temp_space_.dptr, workspace_byte_)); - #else +#else CUDNN_CALL(cudnnRNNForwardInference(s->dnn_handle_, rnn_desc_, param_.seq_length_, @@ -740,22 +824,22 @@ class RNNOp { cy_ptr, temp_space_.dptr, workspace_byte_)); - #endif +#endif } - #endif +#endif if (ctx_.dev_type == kCPU) { // allocate temp space const size_t work_cpu_space_size = - GetRNNWorkspaceSize(param_.seq_length_, param_.batch_size_, - param_.state_size, direction, param_.mode); + GetRNNWorkspaceSize(param_.seq_length_, param_.batch_size_, + param_.state_size, direction, param_.mode); if (temp_init_space_ && temp_cpu_space_size_ < work_cpu_space_size) { - Storage::Get()->Free(temp_cpu_space_); - temp_init_space_ = false; + Storage::Get()->Free(temp_cpu_space_); + temp_init_space_ = false; } if (!temp_init_space_) { temp_cpu_space_ = Storage::Get()->Alloc - (work_cpu_space_size * sizeof(DType), Context::CPU()); + (work_cpu_space_size * sizeof(DType), Context::CPU()); temp_cpu_space_size_ = work_cpu_space_size; temp_init_space_ = true; } @@ -828,7 +912,8 @@ class RNNOp { CHECK(param_.p >= 0.0f && param_.p < 1.0f) << "unsupported dropout value, should be 0 <= dropout < 1"; - size_t num_inputs = (param_.mode == rnn_enum::kLstm) ? 4 : 3; + size_t num_inputs = GetNumInputArguments(param_); + // kOut size_t num_outputs = 1; if (param_.state_outputs) { @@ -890,15 +975,16 @@ class RNNOp { cx_ptr = (in_data[rnn_enum::kStateCell].get(s)).dptr_; dcx_ptr = (in_grad[rnn_enum::kStateCell].get(s)).dptr_; } - if ((param_.mode == rnn_enum::kLstm) && param_.state_outputs) + if ((param_.mode == rnn_enum::kLstm) && param_.state_outputs) { dcy_ptr = (out_grad[rnn_enum::kStateCellOut].get(s)).dptr_; + } #if MXNET_USE_CUDNN_RNN && defined(__CUDACC__) if (!init_cudnn_) { Init(ctx, s, in_data, out_data); } - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnRNNBackwardDataEx(s->dnn_handle_, rnn_desc_, y_data_desc_, @@ -1038,19 +1124,19 @@ class RNNOp { } } - private: inline void Init(const OpContext &ctx, mshadow::Stream *s, const std::vector &in_data, const std::vector &out_data) { using namespace mshadow; - size_t num_inputs = (param_.mode == rnn_enum::kLstm) ? 4 : 3; + + size_t num_inputs = GetNumInputArguments(param_); // kOut size_t num_outputs = 1; if (param_.state_outputs) { // kOut, kStateOut, kStateCellOut - num_outputs = (param_.mode == rnn_enum::kLstm) ? 3 : 2; + num_outputs = (param_.mode == rnn_enum::kLstm) ? 3U : 2U; } CHECK_EQ(in_data.size(), num_inputs); @@ -1130,7 +1216,7 @@ class RNNOp { strideA[0] = dimA[2] * dimA[1]; strideA[1] = dimA[2]; strideA[2] = 1; - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 int dimB[3]; int strideB[3]; dimB[0] = param_.num_layers * (param_.bidirectional ? 2 : 1); @@ -1141,7 +1227,7 @@ class RNNOp { strideB[1] = dimB[2]; strideB[2] = 1; #endif - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnSetTensorNdDescriptor(hx_desc_, dtype_, 3, @@ -1159,7 +1245,7 @@ class RNNOp { 3, dimA, strideA)); - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnSetTensorNdDescriptor(hy_desc_, dtype_, 3, @@ -1177,7 +1263,7 @@ class RNNOp { 3, dimA, strideA)); - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnSetTensorNdDescriptor(dhx_desc_, dtype_, 3, @@ -1195,7 +1281,7 @@ class RNNOp { 3, dimA, strideA)); - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 CUDNN_CALL(cudnnSetTensorNdDescriptor(dhy_desc_, dtype_, 3, @@ -1258,12 +1344,13 @@ class RNNOp { } #if CUDNN_VERSION >= 7200 if (GetEnvAllowTensorCore() && GetEnvAllowTensorCoreConversion() && - (DataType::kFlag != kFloat16)) + (DataType::kFlag != kFloat16)) { math_type = CUDNN_TENSOR_OP_MATH_ALLOW_CONVERSION; + } #endif CUDNN_CALL(cudnnSetRNNMatrixMathType(rnn_desc_, math_type)); #endif - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 if (param_.projection_size.has_value()) { CUDNN_CALL(cudnnSetRNNProjectionLayers(s->dnn_handle_, rnn_desc_, @@ -1272,6 +1359,13 @@ class RNNOp { } #endif // Get temp space sizes + + #if MXNET_USE_CUDNN_GE_7200 + if (param_.use_sequence_length) { + CUDNN_CALL(cudnnSetRNNPaddingMode(rnn_desc_, CUDNN_RNN_PADDED_IO_ENABLED)); + } + #endif + CUDNN_CALL(cudnnGetRNNWorkspaceSize(s->dnn_handle_, rnn_desc_, param_.seq_length_, @@ -1360,8 +1454,9 @@ class RNNOp { size_t workspace_byte_, reserve_space_byte_, dropout_byte_; int workspace_size_; std::vector x_desc_vec_, y_desc_vec_, dx_desc_vec_, dy_desc_vec_; - #if USE_CUDNN_LSTM_PROJ + #if MXNET_USE_CUDNN_GE_7200 cudnnRNNDataDescriptor_t x_data_desc_, y_data_desc_, dx_data_desc_, dy_data_desc_; + DType padding_fill_ = 0; #endif cudnnTensorDescriptor_t hx_desc_, cx_desc_; cudnnTensorDescriptor_t hy_desc_, cy_desc_; @@ -1387,13 +1482,22 @@ static OpStatePtr CreateRNNState(const nnvm::NodeAttrs &attrs, const std::vector &in_types) { const RNNParam& param = nnvm::get(attrs.parsed); OpStatePtr state = OpStatePtr(); - MSHADOW_REAL_TYPE_SWITCH(in_types[rnn_enum::kData], DType, { + int dtype = in_types[rnn_enum::kData]; + int itype = dtype; + if (param.use_sequence_length) { + itype = in_types[rnn_enum::kSequenceLength]; + if (param.mode == rnn_enum::kLstm) itype -= 1; + } + + MSHADOW_REAL_TYPE_SWITCH(dtype, DType, { + MSHADOW_TYPE_SWITCH(itype, IType, { if (ctx.dev_type == kGPU) { - state = OpStatePtr::Create>(param, ctx); + state = OpStatePtr::Create>(param, ctx); } else { - state = OpStatePtr::Create>(param, ctx); + state = OpStatePtr::Create>(param, ctx); } }); + }); return state; } @@ -1404,10 +1508,18 @@ void RNNStatefulCompute(const OpStatePtr& state, const std::vector& req, const std::vector& outputs) { int dtype = inputs[rnn_enum::kData].type_flag_; + + // Hacky. This relies on fact that seq-len type is either the last input, + // or we aren't using seq-len input and this type should be same as dtype. + // Would prefer direct access to RNNParam object here but not sure how to get. + int itype = inputs[inputs.size()-1].type_flag_; + MSHADOW_REAL_TYPE_SWITCH(dtype, DType, { - RNNOp& op = state.get_state>(); - op.Forward(ctx, inputs, req, outputs); - }); + MSHADOW_TYPE_SWITCH(itype, IType, { + RNNOp& op = state.get_state>(); + op.Forward(ctx, inputs, req, outputs); + }); + }); } /* @@ -1435,25 +1547,33 @@ void RNNStatefulGradCompute(const OpStatePtr& state, const std::vector &in_grad = outputs; int dtype = inputs[rnn_enum::kData].type_flag_; - MSHADOW_REAL_TYPE_SWITCH(dtype, DType, { - RNNOp& op = state.get_state>(); - const RNNParam& param = op.param_; - int index = 5; - if (param.state_outputs) { - out_data.push_back(inputs[index++]); - out_grad.push_back(inputs[index++]); - } - if (param.mode == rnn_enum::kLstm) { - in_data.push_back(inputs[index++]); - if (param.state_outputs) { - out_data.push_back(inputs[index++]); - out_grad.push_back(inputs[index]); - } - } + // Hacky. This relies on fact that seq-len type is either the last input, + // or we aren't using seq-len input and this type should be same as dtype. + // Would prefer direct access to RNNParam object here but not sure how to get. + int itype = inputs[inputs.size()-1].type_flag_; - op.Backward(ctx, out_grad, in_data, out_data, req, in_grad); - }); + MSHADOW_REAL_TYPE_SWITCH(dtype, DType, { + MSHADOW_TYPE_SWITCH(itype, IType, { + RNNOp& op = state.get_state>(); + const RNNParam& param = op.param_; + int index = 5; + if (param.state_outputs) { + out_data.push_back(inputs[index++]); + out_grad.push_back(inputs[index++]); + } + + if (param.mode == rnn_enum::kLstm) { + in_data.push_back(inputs[index++]); + if (param.state_outputs) { + out_data.push_back(inputs[index++]); + out_grad.push_back(inputs[index]); + } + } + + op.Backward(ctx, out_grad, in_data, out_data, req, in_grad); + }); + }); } } // namespace op diff --git a/src/operator/rnn.cc b/src/operator/rnn.cc index 7012a3c22f50..296d57eb4713 100644 --- a/src/operator/rnn.cc +++ b/src/operator/rnn.cc @@ -23,6 +23,9 @@ * \brief * \author Sebastian Bodenstein */ + +#include + #include "./rnn-inl.h" namespace mxnet { @@ -30,11 +33,20 @@ namespace op { DMLC_REGISTER_PARAMETER(RNNParam); static inline std::vector ListArguments(const RNNParam& param_) { + // All RNNs start off with same 3 input arguments + std::vector arguments{"data", "parameters", "state"}; + + // LSTMs also have an additional state_cell argument if (param_.mode == rnn_enum::kLstm) { - return {"data", "parameters", "state", "state_cell"}; - } else { - return {"data", "parameters", "state"}; + arguments.emplace_back("state_cell"); } + + // All RNNs have option of additional sequence_length argument + if (param_.use_sequence_length) { + arguments.emplace_back("sequence_length"); + } + + return arguments; } static bool RNNShape(const nnvm::NodeAttrs& attrs, @@ -42,13 +54,13 @@ static bool RNNShape(const nnvm::NodeAttrs& attrs, std::vector *out_shape) { const RNNParam& param_ = nnvm::get(attrs.parsed); using namespace mshadow; - if (param_.mode == rnn_enum::kLstm) { - CHECK_EQ(in_shape->size(), 4U) << "Needed input:[data, parameters, state, cell_state]," - << " got in_shape->size(): " << in_shape->size(); - } else { - CHECK_EQ(in_shape->size(), 3U) << - "Needed input:[data, parameters, state], got in_shape->size(): " << in_shape->size(); - } + + // Query param_ object to figure out what the expectd input arguments are + std::vector expected_arguments = ListArguments(param_); + + CHECK_EQ(in_shape->size(), expected_arguments.size()) << "Input shape mismatch. Expected " << + expected_arguments.size() << " input parameters but got " << in_shape->size() << "."; + const TShape &dshape = (*in_shape)[rnn_enum::kData]; if (!mxnet::ndim_is_known(dshape)) return false; CHECK_EQ(dshape.ndim(), 3U) \ @@ -77,6 +89,15 @@ static bool RNNShape(const nnvm::NodeAttrs& attrs, param_.mode, param_.projection_size); SHAPE_ASSIGN_CHECK(*in_shape, rnn_enum::kParams, Shape1(param_size)); + + // Check on sequence_length shape if using + if (param_.use_sequence_length) { + size_t seq_len_input_idx = rnn_enum::kSequenceLength; + if (param_.mode != rnn_enum::kLstm) --seq_len_input_idx; + + SHAPE_ASSIGN_CHECK(*in_shape, seq_len_input_idx, Shape1(batch_size)); + } + out_shape->clear(); // output: [sequence len, batch, output size] TShape oshape = dshape; @@ -106,6 +127,7 @@ static bool RNNShape(const nnvm::NodeAttrs& attrs, out_shape->push_back(cellStateShape); } } + return true; } @@ -113,18 +135,24 @@ static bool RNNType(const nnvm::NodeAttrs& attrs, std::vector *in_type, std::vector *out_type) { const RNNParam& param_ = nnvm::get(attrs.parsed); - if (param_.mode == rnn_enum::kLstm) { - CHECK_EQ(in_type->size(), 4U); - } else { - CHECK_EQ(in_type->size(), 3U); - } + + CHECK_EQ(in_type->size(), GetNumInputArguments(param_)); + + size_t seq_len_input_idx = rnn_enum::kSequenceLength; + if (param_.mode != rnn_enum::kLstm) --seq_len_input_idx; + int dtype = (*in_type)[0]; CHECK_NE(dtype, -1) << "First input must have specified type"; + std::vector arguments = ListArguments(param_); for (size_t i = 0; i < in_type->size(); ++i) { if ((*in_type)[i] == -1) { TYPE_ASSIGN_CHECK(*in_type, i, dtype); } else { - UNIFORM_TYPE_CHECK((*in_type)[i], dtype, ListArguments(param_)[i]); + // If using sequence length argument, it has its own indexing type + // All other input arguments must match the main data type + if (!(param_.use_sequence_length && i == seq_len_input_idx)) { + UNIFORM_TYPE_CHECK((*in_type)[i], dtype, arguments[i]); + } } } out_type->clear(); @@ -132,8 +160,9 @@ static bool RNNType(const nnvm::NodeAttrs& attrs, if (param_.state_outputs) { out_type->push_back(dtype); // Deal with lstm cell state - if (param_.mode == rnn_enum::kLstm) + if (param_.mode == rnn_enum::kLstm) { out_type->push_back(dtype); + } } return true; } @@ -220,7 +249,7 @@ The definition of GRU here is slightly different from paper but compatible with .set_attr_parser(ParamParser) .set_num_inputs([](const NodeAttrs& attrs) { const RNNParam& params = nnvm::get(attrs.parsed); - return params.mode == rnn_enum::kLstm ? 4 : 3; + return GetNumInputArguments(params); }) .set_num_outputs([](const NodeAttrs& attrs) { const RNNParam& params = nnvm::get(attrs.parsed); @@ -246,13 +275,13 @@ The definition of GRU here is slightly different from paper but compatible with .set_attr("FResourceRequestEx", [](const NodeAttrs& attrs, const int dev_mask, const DispatchMode dispatch_mode) { std::vector request; - const RNNParam& param = nnvm::get(attrs.parsed); - if (param.p == 0) return request; if (dev_mask == kGPU) { #if MXNET_USE_CUDNN_RNN - if (1.0f - param.p > 0) { + request.emplace_back(ResourceRequest::kTempSpace); + + const RNNParam& param = nnvm::get(attrs.parsed); + if (param.p != 0 && 1.0f - param.p > 0) { request.emplace_back(ResourceRequest::kCuDNNDropoutDesc); - return request; } #endif } @@ -264,12 +293,15 @@ The definition of GRU here is slightly different from paper but compatible with .add_argument("state", "NDArray-or-Symbol", "initial hidden state of the RNN") .add_argument("state_cell", "NDArray-or-Symbol", "initial cell state for LSTM networks (only for LSTM)") +.add_argument("sequence_length", "NDArray-or-Symbol", + "Vector of valid sequence lengths for each element in batch. (Only used if" + " use_sequence_length kwarg is True)") .add_arguments(RNNParam::__FIELDS__()); NNVM_REGISTER_OP(_backward_RNN) .set_num_outputs([](const NodeAttrs& attrs) { const RNNParam& params = nnvm::get(attrs.parsed); - return params.mode == rnn_enum::kLstm ? 4 : 3; + return GetNumInputArguments(params); }) .set_attr_parser(ParamParser) .set_attr("TIsLayerOpBackward", true) diff --git a/src/operator/rnn.cu b/src/operator/rnn.cu index 77bb95522711..093a64a0623a 100644 --- a/src/operator/rnn.cu +++ b/src/operator/rnn.cu @@ -30,6 +30,7 @@ namespace mxnet { namespace op { + NNVM_REGISTER_OP(RNN) .set_attr("FStatefulCompute", RNNStatefulCompute); diff --git a/tests/python/gpu/test_gluon_gpu.py b/tests/python/gpu/test_gluon_gpu.py index 1c5a5835e6f9..95835fd77e9e 100644 --- a/tests/python/gpu/test_gluon_gpu.py +++ b/tests/python/gpu/test_gluon_gpu.py @@ -24,6 +24,7 @@ import unittest import random import mxnet as mx +import mxnet.ndarray as nd import numpy as np import unittest import math @@ -225,6 +226,55 @@ def forward(self, inpt): assert_allclose(net(data).asnumpy(), ref_net(data).asnumpy()) +def check_layer_bidirectional_varseqlen(size, in_size): + class RefBiLSTMVarSeqLen(gluon.Block): + def __init__(self, size, **kwargs): + super(RefBiLSTMVarSeqLen, self).__init__(**kwargs) + with self.name_scope(): + self._lstm_fwd = gluon.rnn.LSTM(size, bidirectional=False, prefix='l0') + self._lstm_bwd = gluon.rnn.LSTM(size, bidirectional=False, prefix='r0') + + def forward(self, inpt, sequence_length): + fwd = self._lstm_fwd(inpt) + bwd_inpt = nd.SequenceReverse(inpt, sequence_length=sequence_length, use_sequence_length=True) + bwd = self._lstm_bwd(bwd_inpt) + bwd = nd.SequenceReverse(bwd, sequence_length=sequence_length, use_sequence_length=True) + return nd.concat(fwd, bwd, dim=2) + weights = {} + for d in ['l', 'r']: + weights['lstm_{}0_i2h_weight'.format(d)] = mx.random.uniform(shape=(size*4, in_size)) + weights['lstm_{}0_h2h_weight'.format(d)] = mx.random.uniform(shape=(size*4, size)) + weights['lstm_{}0_i2h_bias'.format(d)] = mx.random.uniform(shape=(size*4,)) + weights['lstm_{}0_h2h_bias'.format(d)] = mx.random.uniform(shape=(size*4,)) + + net = gluon.rnn.LSTM(size, bidirectional=True, use_sequence_length=True, prefix='lstm_') + ref_net = RefBiLSTMVarSeqLen(size, prefix='lstm_') + net.initialize() + ref_net.initialize() + net_params = net.collect_params() + ref_net_params = ref_net.collect_params() + for k in weights: + net_params[k].set_data(weights[k]) + ref_net_params[k.replace('l0', 'l0l0').replace('r0', 'r0l0')].set_data(weights[k]) + + + batch_size = 10 + num_timesteps = 11 + data = mx.random.uniform(shape=(num_timesteps, batch_size, in_size)) + + # TODO: figure out why int32 doesn't work here + sequence_length = nd.random.randint(1, num_timesteps+1, shape=(batch_size)).astype("float") + + net_output = net(data, sequence_length=sequence_length).asnumpy() + ref_net_output = ref_net(data, sequence_length).asnumpy() + sequence_length_np = sequence_length.asnumpy().astype("int32") + + # TODO: test state return value as well output + # Only compare the valid sections for each batch entry + for b in range(batch_size): + assert_allclose(net_output[:sequence_length_np[b], b], ref_net_output[:sequence_length_np[b], b]) + + @with_seed() @assert_raises_cudnn_not_satisfied(min_version='5.1.10') def test_layer_bidirectional(): @@ -236,6 +286,11 @@ def test_layer_bidirectional(): def test_layer_bidirectional_proj(): check_layer_bidirectional(7, 5, 3) +@with_seed() +@assert_raises_cudnn_not_satisfied(min_version='7.2.1') +def test_layer_bidirectional_varseqlength(): + check_layer_bidirectional_varseqlen(7, 5) + @with_seed() @assert_raises_cudnn_not_satisfied(min_version='5.1.10') From 0ddef13bd2fe2a74384186dfdb226f5cd6c16f4f Mon Sep 17 00:00:00 2001 From: perdasilva Date: Wed, 8 May 2019 07:57:44 +0200 Subject: [PATCH 07/15] Revert "[Dependency Update] Upgrade cuDNN & NCCL (#14884)" (#14910) This reverts commit 0255dd6d84967ad9c18cdc711ff76f588a62ab7c. --- tools/setup_gpu_build_tools.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/setup_gpu_build_tools.sh b/tools/setup_gpu_build_tools.sh index 8fd1edb9e4cc..167d4c6a6e13 100755 --- a/tools/setup_gpu_build_tools.sh +++ b/tools/setup_gpu_build_tools.sh @@ -31,14 +31,14 @@ if [[ $VARIANT == cu100* ]]; then CUDA_VERSION='10.0.130-1' CUDA_PATCH_VERSION='10.0.130-1' LIBCUDA_VERSION='410.48-0ubuntu1' - LIBCUDNN_VERSION='7.5.1.10-1+cuda10.0' - LIBNCCL_VERSION='2.4.2-1+cuda10.0' + LIBCUDNN_VERSION='7.3.1.20-1+cuda10.0' + LIBNCCL_VERSION='2.3.4-1+cuda9.2' elif [[ $VARIANT == cu92* ]]; then CUDA_VERSION='9.2.148-1' CUDA_PATCH_VERSION='9.2.148.1-1' LIBCUDA_VERSION='396.44-0ubuntu1' - LIBCUDNN_VERSION='7.5.1.10-1+cuda9.2' - LIBNCCL_VERSION='2.4.2-1+cuda9.2' + LIBCUDNN_VERSION='7.3.1.20-1+cuda9.2' + LIBNCCL_VERSION='2.3.4-1+cuda9.2' elif [[ $VARIANT == cu91* ]]; then CUDA_VERSION='9.1.85-1' CUDA_PATCH_VERSION='9.1.85.3-1' @@ -49,8 +49,8 @@ elif [[ $VARIANT == cu90* ]]; then CUDA_VERSION='9.0.176-1' CUDA_PATCH_VERSION='9.0.176.3-1' LIBCUDA_VERSION='384.145-0ubuntu1' - LIBCUDNN_VERSION='7.5.1.10-1+cuda9.0' - LIBNCCL_VERSION='2.4.2-1+cuda9.0' + LIBCUDNN_VERSION='7.3.1.20-1+cuda9.0' + LIBNCCL_VERSION='2.3.4-1+cuda9.0' elif [[ $VARIANT == cu80* ]]; then CUDA_VERSION='8.0.61-1' CUDA_PATCH_VERSION='8.0.61.2-1' From 2e03e9ff07b4c34cd165071aeb785db14b965ade Mon Sep 17 00:00:00 2001 From: perdasilva Date: Wed, 8 May 2019 17:20:41 +0200 Subject: [PATCH 08/15] Adds additional CUDA build environments (#14909) * Adds additional cuda environments * Removes ubuntu_gpu environment and refactors CI steps to use ubuntu_gpu_cu100 instead --- ..._gpu => Dockerfile.build.ubuntu_gpu_cu100} | 0 ci/docker/Dockerfile.build.ubuntu_gpu_cu80 | 78 +++++++++++++++++ ci/docker/Dockerfile.build.ubuntu_gpu_cu90 | 83 +++++++++++++++++++ ci/docker/Dockerfile.build.ubuntu_gpu_cu92 | 83 +++++++++++++++++++ ci/docker/install/ubuntu_cudnn.sh | 27 +++++- ci/jenkins/Jenkins_steps.groovy | 38 ++++----- 6 files changed, 289 insertions(+), 20 deletions(-) rename ci/docker/{Dockerfile.build.ubuntu_gpu => Dockerfile.build.ubuntu_gpu_cu100} (100%) create mode 100644 ci/docker/Dockerfile.build.ubuntu_gpu_cu80 create mode 100644 ci/docker/Dockerfile.build.ubuntu_gpu_cu90 create mode 100644 ci/docker/Dockerfile.build.ubuntu_gpu_cu92 diff --git a/ci/docker/Dockerfile.build.ubuntu_gpu b/ci/docker/Dockerfile.build.ubuntu_gpu_cu100 similarity index 100% rename from ci/docker/Dockerfile.build.ubuntu_gpu rename to ci/docker/Dockerfile.build.ubuntu_gpu_cu100 diff --git a/ci/docker/Dockerfile.build.ubuntu_gpu_cu80 b/ci/docker/Dockerfile.build.ubuntu_gpu_cu80 new file mode 100644 index 000000000000..9c7a8084b093 --- /dev/null +++ b/ci/docker/Dockerfile.build.ubuntu_gpu_cu80 @@ -0,0 +1,78 @@ +# -*- mode: dockerfile -*- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# Dockerfile to run MXNet on Ubuntu 16.04 for GPU + +FROM nvidia/cuda:8.0-cudnn7-devel-ubuntu16.04 + +WORKDIR /work/deps + +COPY install/ubuntu_core.sh /work/ +RUN /work/ubuntu_core.sh + +COPY install/deb_ubuntu_ccache.sh /work/ +RUN /work/deb_ubuntu_ccache.sh + +COPY install/ubuntu_python.sh /work/ +RUN /work/ubuntu_python.sh + +COPY install/ubuntu_scala.sh /work/ +COPY install/sbt.gpg /work/ +RUN /work/ubuntu_scala.sh + +COPY install/ubuntu_r.sh /work/ +COPY install/r.gpg /work/ +RUN /work/ubuntu_r.sh + +COPY install/ubuntu_perl.sh /work/ +RUN /work/ubuntu_perl.sh + +COPY install/ubuntu_clang.sh /work/ +RUN /work/ubuntu_clang.sh + +COPY install/ubuntu_mklml.sh /work/ +RUN /work/ubuntu_mklml.sh + +COPY install/ubuntu_tvm.sh /work/ +RUN /work/ubuntu_tvm.sh + +COPY install/ubuntu_llvm.sh /work/ +RUN /work/ubuntu_llvm.sh + +COPY install/ubuntu_caffe.sh /work/ +RUN /work/ubuntu_caffe.sh + +COPY install/ubuntu_onnx.sh /work/ +RUN /work/ubuntu_onnx.sh + +COPY install/ubuntu_docs.sh /work/ +COPY install/docs_requirements /work/ +RUN /work/ubuntu_docs.sh + +COPY install/ubuntu_tutorials.sh /work/ +RUN /work/ubuntu_tutorials.sh + +ARG USER_ID=0 +ARG GROUP_ID=0 +COPY install/ubuntu_adduser.sh /work/ +RUN /work/ubuntu_adduser.sh + +COPY runtime_functions.sh /work/ + +WORKDIR /work/mxnet +ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib diff --git a/ci/docker/Dockerfile.build.ubuntu_gpu_cu90 b/ci/docker/Dockerfile.build.ubuntu_gpu_cu90 new file mode 100644 index 000000000000..f1e6570f03b9 --- /dev/null +++ b/ci/docker/Dockerfile.build.ubuntu_gpu_cu90 @@ -0,0 +1,83 @@ +# -*- mode: dockerfile -*- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# Dockerfile to run MXNet on Ubuntu 16.04 for GPU + +FROM nvidia/cuda:9.0-devel-ubuntu16.04 + +ENV CUDNN_VERSION=7.3.1.20 + +WORKDIR /work/deps + +COPY install/ubuntu_core.sh /work/ +RUN /work/ubuntu_core.sh + +COPY install/deb_ubuntu_ccache.sh /work/ +RUN /work/deb_ubuntu_ccache.sh + +COPY install/ubuntu_python.sh /work/ +RUN /work/ubuntu_python.sh + +COPY install/ubuntu_scala.sh /work/ +COPY install/sbt.gpg /work/ +RUN /work/ubuntu_scala.sh + +COPY install/ubuntu_r.sh /work/ +COPY install/r.gpg /work/ +RUN /work/ubuntu_r.sh + +COPY install/ubuntu_perl.sh /work/ +RUN /work/ubuntu_perl.sh + +COPY install/ubuntu_clang.sh /work/ +RUN /work/ubuntu_clang.sh + +COPY install/ubuntu_mklml.sh /work/ +RUN /work/ubuntu_mklml.sh + +COPY install/ubuntu_tvm.sh /work/ +RUN /work/ubuntu_tvm.sh + +COPY install/ubuntu_llvm.sh /work/ +RUN /work/ubuntu_llvm.sh + +COPY install/ubuntu_caffe.sh /work/ +RUN /work/ubuntu_caffe.sh + +COPY install/ubuntu_onnx.sh /work/ +RUN /work/ubuntu_onnx.sh + +COPY install/ubuntu_docs.sh /work/ +COPY install/docs_requirements /work/ +RUN /work/ubuntu_docs.sh + +COPY install/ubuntu_tutorials.sh /work/ +RUN /work/ubuntu_tutorials.sh + +ARG USER_ID=0 +ARG GROUP_ID=0 +COPY install/ubuntu_adduser.sh /work/ +RUN /work/ubuntu_adduser.sh + +COPY install/ubuntu_cudnn.sh /work/ +RUN /work/ubuntu_cudnn.sh + +COPY runtime_functions.sh /work/ + +WORKDIR /work/mxnet +ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib diff --git a/ci/docker/Dockerfile.build.ubuntu_gpu_cu92 b/ci/docker/Dockerfile.build.ubuntu_gpu_cu92 new file mode 100644 index 000000000000..81b337e4d9a7 --- /dev/null +++ b/ci/docker/Dockerfile.build.ubuntu_gpu_cu92 @@ -0,0 +1,83 @@ +# -*- mode: dockerfile -*- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# Dockerfile to run MXNet on Ubuntu 16.04 for GPU + +FROM nvidia/cuda:9.2-devel-ubuntu16.04 + +ENV CUDNN_VERSION=7.3.1.20 + +WORKDIR /work/deps + +COPY install/ubuntu_core.sh /work/ +RUN /work/ubuntu_core.sh + +COPY install/deb_ubuntu_ccache.sh /work/ +RUN /work/deb_ubuntu_ccache.sh + +COPY install/ubuntu_python.sh /work/ +RUN /work/ubuntu_python.sh + +COPY install/ubuntu_scala.sh /work/ +COPY install/sbt.gpg /work/ +RUN /work/ubuntu_scala.sh + +COPY install/ubuntu_r.sh /work/ +COPY install/r.gpg /work/ +RUN /work/ubuntu_r.sh + +COPY install/ubuntu_perl.sh /work/ +RUN /work/ubuntu_perl.sh + +COPY install/ubuntu_clang.sh /work/ +RUN /work/ubuntu_clang.sh + +COPY install/ubuntu_mklml.sh /work/ +RUN /work/ubuntu_mklml.sh + +COPY install/ubuntu_tvm.sh /work/ +RUN /work/ubuntu_tvm.sh + +COPY install/ubuntu_llvm.sh /work/ +RUN /work/ubuntu_llvm.sh + +COPY install/ubuntu_caffe.sh /work/ +RUN /work/ubuntu_caffe.sh + +COPY install/ubuntu_onnx.sh /work/ +RUN /work/ubuntu_onnx.sh + +COPY install/ubuntu_docs.sh /work/ +COPY install/docs_requirements /work/ +RUN /work/ubuntu_docs.sh + +COPY install/ubuntu_tutorials.sh /work/ +RUN /work/ubuntu_tutorials.sh + +ARG USER_ID=0 +ARG GROUP_ID=0 +COPY install/ubuntu_adduser.sh /work/ +RUN /work/ubuntu_adduser.sh + +COPY install/ubuntu_cudnn.sh /work/ +RUN /work/ubuntu_cudnn.sh + +COPY runtime_functions.sh /work/ + +WORKDIR /work/mxnet +ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib diff --git a/ci/docker/install/ubuntu_cudnn.sh b/ci/docker/install/ubuntu_cudnn.sh index 12b64865a219..3f649074f4d5 100755 --- a/ci/docker/install/ubuntu_cudnn.sh +++ b/ci/docker/install/ubuntu_cudnn.sh @@ -24,6 +24,31 @@ set -ex +if [ -z ${CUDNN_VERSION} ]; then + echo "Error: CUDNN_VERSION environment variable undefiend" + exit 1 +fi + apt-get update || true -apt-get install -y libcudnn7=7.3.1.20-1+cuda10.0 libcudnn7-dev=7.3.1.20-1+cuda10.0 + +case ${CUDA_VERSION} in + 10\.0*) + export libcudnn7_version="${CUDNN_VERSION}-1+cuda10.0" + export libcudnn7_dev_version="${CUDNN_VERSION}-1+cuda10.0" + ;; + 9\.0*) + export libcudnn7_version="${CUDNN_VERSION}-1+cuda9.0" + export libcudnn7_dev_version="${CUDNN_VERSION}-1+cuda9.0" + ;; + 9\.2*) + export libcudnn7_version="${CUDNN_VERSION}-1+cuda9.2" + export libcudnn7_dev_version="${CUDNN_VERSION}-1+cuda9.2" + ;; + *) + echo "Unsupported CUDA version ${CUDA_VERSION}" + exit 1 + ;; +esac + +apt-get install -y libcudnn7=${libcudnn7_version} libcudnn7-dev=${libcudnn7_dev_version} diff --git a/ci/jenkins/Jenkins_steps.groovy b/ci/jenkins/Jenkins_steps.groovy index 1352e92c785f..2c86cf740a80 100644 --- a/ci/jenkins/Jenkins_steps.groovy +++ b/ci/jenkins/Jenkins_steps.groovy @@ -139,7 +139,7 @@ def compile_unix_int64_gpu() { ws('workspace/build-gpu-int64') { timeout(time: max_time, unit: 'MINUTES') { utils.init_git() - utils.docker_run('ubuntu_gpu', 'build_ubuntu_gpu_large_tensor', false) + utils.docker_run('ubuntu_gpu_cu100', 'build_ubuntu_gpu_large_tensor', false) utils.pack_lib('ubuntu_gpu_int64', mx_cmake_lib, true) } } @@ -237,7 +237,7 @@ def compile_unix_cmake_mkldnn_gpu() { ws('workspace/build-cmake-mkldnn-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.init_git() - utils.docker_run('ubuntu_gpu', 'build_ubuntu_gpu_cmake_mkldnn', false) + utils.docker_run('ubuntu_gpu_cu100', 'build_ubuntu_gpu_cmake_mkldnn', false) utils.pack_lib('cmake_mkldnn_gpu', mx_cmake_mkldnn_lib, true) } } @@ -251,7 +251,7 @@ def compile_unix_cmake_gpu() { ws('workspace/build-cmake-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.init_git() - utils.docker_run('ubuntu_gpu', 'build_ubuntu_gpu_cmake', false) + utils.docker_run('ubuntu_gpu_cu100', 'build_ubuntu_gpu_cmake', false) utils.pack_lib('cmake_gpu', mx_cmake_lib, true) } } @@ -606,7 +606,7 @@ def test_unix_python2_gpu() { ws('workspace/ut-python2-gpu') { try { utils.unpack_and_init('gpu', mx_lib, true) - python2_gpu_ut('ubuntu_gpu') + python2_gpu_ut('ubuntu_gpu_cu100') utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_gpu.xml', 'nosetests_python2_gpu.xml') @@ -623,7 +623,7 @@ def test_unix_python2_quantize_gpu() { timeout(time: max_time, unit: 'MINUTES') { try { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'unittest_ubuntu_python2_quantization_gpu', true) + utils.docker_run('ubuntu_gpu_cu100', 'unittest_ubuntu_python2_quantization_gpu', true) utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_quantization_gpu.xml', 'nosetests_python2_quantize_gpu.xml') @@ -640,7 +640,7 @@ def test_unix_python2_mkldnn_gpu() { ws('workspace/ut-python2-mkldnn-gpu') { try { utils.unpack_and_init('mkldnn_gpu', mx_mkldnn_lib, true) - python2_gpu_ut('ubuntu_gpu') + python2_gpu_ut('ubuntu_gpu_cu100') utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_gpu.xml', 'nosetests_python2_mkldnn_gpu.xml') @@ -690,7 +690,7 @@ def test_unix_python3_gpu() { ws('workspace/ut-python3-gpu') { try { utils.unpack_and_init('gpu', mx_lib, true) - python3_gpu_ut('ubuntu_gpu') + python3_gpu_ut('ubuntu_gpu_cu100') utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_gpu.xml', 'nosetests_python3_gpu.xml') @@ -707,7 +707,7 @@ def test_unix_python3_quantize_gpu() { timeout(time: max_time, unit: 'MINUTES') { try { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'unittest_ubuntu_python3_quantization_gpu', true) + utils.docker_run('ubuntu_gpu_cu100', 'unittest_ubuntu_python3_quantization_gpu', true) utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_quantization_gpu.xml', 'nosetests_python3_quantize_gpu.xml') @@ -792,7 +792,7 @@ def test_unix_python3_mkldnn_gpu() { ws('workspace/ut-python3-mkldnn-gpu') { try { utils.unpack_and_init('mkldnn_gpu', mx_mkldnn_lib, true) - python3_gpu_ut('ubuntu_gpu') + python3_gpu_ut('ubuntu_gpu_cu100') utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_gpu.xml', 'nosetests_python3_mkldnn_gpu.xml') @@ -808,7 +808,7 @@ def test_unix_python3_mkldnn_nocudnn_gpu() { ws('workspace/ut-python3-mkldnn-gpu-nocudnn') { try { utils.unpack_and_init('mkldnn_gpu_nocudnn', mx_mkldnn_lib, true) - python3_gpu_ut_nocudnn('ubuntu_gpu') + python3_gpu_ut_nocudnn('ubuntu_gpu_cu100') utils.publish_test_coverage() } finally { utils.collect_test_results_unix('nosetests_gpu.xml', 'nosetests_python3_mkldnn_gpu_nocudnn.xml') @@ -842,7 +842,7 @@ def test_unix_python3_integration_gpu() { ws('workspace/it-python-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'integrationtest_ubuntu_gpu_python', true) + utils.docker_run('ubuntu_gpu_cu100', 'integrationtest_ubuntu_gpu_python', true) utils.publish_test_coverage() } } @@ -857,7 +857,7 @@ def test_unix_caffe_gpu() { timeout(time: max_time, unit: 'MINUTES') { utils.init_git() utils.unpack_lib('gpu', mx_lib) - utils.docker_run('ubuntu_gpu', 'integrationtest_ubuntu_gpu_caffe', true) + utils.docker_run('ubuntu_gpu_cu100', 'integrationtest_ubuntu_gpu_caffe', true) utils.publish_test_coverage() } } @@ -871,7 +871,7 @@ def test_unix_cpp_package_gpu() { ws('workspace/it-cpp-package') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('gpu', mx_lib_cpp_examples, true) - utils.docker_run('ubuntu_gpu', 'integrationtest_ubuntu_gpu_cpp_package', true) + utils.docker_run('ubuntu_gpu_cu100', 'integrationtest_ubuntu_gpu_cpp_package', true) utils.publish_test_coverage() } } @@ -913,7 +913,7 @@ def test_unix_scala_gpu() { ws('workspace/ut-scala-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'integrationtest_ubuntu_gpu_scala', true) + utils.docker_run('ubuntu_gpu_cu100', 'integrationtest_ubuntu_gpu_scala', true) utils.publish_test_coverage() } } @@ -996,7 +996,7 @@ def test_unix_cpp_gpu() { ws('workspace/ut-cpp-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('cmake_gpu', mx_cmake_lib, true) - utils.docker_run('ubuntu_gpu', 'unittest_cpp', true) + utils.docker_run('ubuntu_gpu_cu100', 'unittest_cpp', true) utils.publish_test_coverage() } } @@ -1010,7 +1010,7 @@ def test_unix_cpp_mkldnn_gpu() { ws('workspace/ut-cpp-mkldnn-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('cmake_mkldnn_gpu', mx_cmake_mkldnn_lib, true) - utils.docker_run('ubuntu_gpu', 'unittest_cpp', true) + utils.docker_run('ubuntu_gpu_cu100', 'unittest_cpp', true) utils.publish_test_coverage() } } @@ -1038,7 +1038,7 @@ def test_unix_perl_gpu() { ws('workspace/ut-perl-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'unittest_ubuntu_cpugpu_perl', true) + utils.docker_run('ubuntu_gpu_cu100', 'unittest_ubuntu_cpugpu_perl', true) utils.publish_test_coverage() } } @@ -1052,7 +1052,7 @@ def test_unix_r_gpu() { ws('workspace/ut-r-gpu') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'unittest_ubuntu_gpu_R', true) + utils.docker_run('ubuntu_gpu_cu100', 'unittest_ubuntu_gpu_R', true) utils.publish_test_coverage() } } @@ -1120,7 +1120,7 @@ def test_unix_distributed_kvstore_gpu() { ws('workspace/it-dist-kvstore') { timeout(time: max_time, unit: 'MINUTES') { utils.unpack_and_init('gpu', mx_lib, true) - utils.docker_run('ubuntu_gpu', 'integrationtest_ubuntu_gpu_dist_kvstore', true) + utils.docker_run('ubuntu_gpu_cu100', 'integrationtest_ubuntu_gpu_dist_kvstore', true) utils.publish_test_coverage() } } From 8dddac0ccd8a07ee428b63e163bf059048a93fe4 Mon Sep 17 00:00:00 2001 From: Rohit Kumar Srivastava Date: Wed, 8 May 2019 21:50:11 -0700 Subject: [PATCH 09/15] [MXNET-1400] adding tests cases to verify large tensor support for depth_to_space and space_to_depth (#14797) --- CONTRIBUTORS.md | 1 + tests/nightly/test_large_array.py | 32 ++++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 7daccf079e83..f0ec80e2725c 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -239,6 +239,7 @@ List of Contributors * [Zak Jost](https://github.com/zjost) * [Shoubhik Bhattacharya](https://github.com/shoubhik) * [Zach Kimberg](https://github.com/zachgk) +* [Rohit Srivastava](https://github.com/access2rohit) Label Bot --------- diff --git a/tests/nightly/test_large_array.py b/tests/nightly/test_large_array.py index 1b7dad487a68..f798cbc1034e 100644 --- a/tests/nightly/test_large_array.py +++ b/tests/nightly/test_large_array.py @@ -17,6 +17,7 @@ import mxnet as mx import numpy as np +from mxnet.test_utils import rand_ndarray, assert_almost_equal from mxnet import gluon, nd from tests.python.unittest.common import with_seed @@ -185,7 +186,36 @@ def test_pick(): b = mx.nd.ones(shape=(256*35,)) res = mx.nd.pick(a,b) assert res.shape == b.shape - + +def test_depthtospace(): + def numpy_depth_to_space(x, blocksize): + b, c, h, w = x.shape[0], x.shape[1], x.shape[2], x.shape[3] + tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w]) + tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2]) + y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize]) + return y + + shape_inp = (LARGE_X, 8, 4, 2) + data = rand_ndarray(shape_inp, 'default') + data_np = data.asnumpy() + expected = numpy_depth_to_space(data_np, 2) + output = mx.nd.depth_to_space(data, 2) + assert_almost_equal(output.asnumpy(), expected, atol=1e-3, rtol=1e-3) + +def test_spacetodepth(): + def numpy_space_to_depth(x, blocksize): + b, c, h, w = x.shape[0], x.shape[1], x.shape[2], x.shape[3] + tmp = np.reshape(x, [b, c, h // blocksize, blocksize, w // blocksize, blocksize]) + tmp = np.transpose(tmp, [0, 3, 5, 1, 2, 4]) + y = np.reshape(tmp, [b, c * (blocksize**2), h // blocksize, w // blocksize]) + return y + + shape_inp = (LARGE_X, 2, 8, 4) + data = rand_ndarray(shape_inp, 'default') + data_np = data.asnumpy() + expected = numpy_space_to_depth(data_np, 2) + output = mx.nd.space_to_depth(data, 2) + assert_almost_equal(output.asnumpy(), expected, atol=1e-3, rtol=1e-3) if __name__ == '__main__': import nose From da024881e8c2fac617f6010f72a7272d52f46599 Mon Sep 17 00:00:00 2001 From: Jake Lee Date: Thu, 9 May 2019 03:46:12 -0700 Subject: [PATCH 10/15] upgrade the libpng to 1.6.35 (#14620) --- tools/dependencies/libpng.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dependencies/libpng.sh b/tools/dependencies/libpng.sh index f71d4762ab34..39fa24c87ecd 100755 --- a/tools/dependencies/libpng.sh +++ b/tools/dependencies/libpng.sh @@ -19,7 +19,7 @@ # This script builds the static library of libpng that can be used as dependency of mxnet/opencv. set -ex -PNG_VERSION=1.6.34 +PNG_VERSION=1.6.35 if [[ ! -f $DEPS_PATH/lib/libpng.a ]]; then # download and build libpng >&2 echo "Building libpng..." From 13f81a03ece24f200ec018e4489517da987a61a1 Mon Sep 17 00:00:00 2001 From: Pedro Larroy Date: Thu, 9 May 2019 06:47:55 -0400 Subject: [PATCH 11/15] Improve dev_menu virtualenv handling (#14788) --- dev_menu.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/dev_menu.py b/dev_menu.py index d439d8194f2a..0b5db2505671 100755 --- a/dev_menu.py +++ b/dev_menu.py @@ -32,10 +32,12 @@ import yaml import shutil + DEFAULT_PYENV=os.environ.get('DEFAULT_PYENV','py3_venv') DEFAULT_PYTHON=os.environ.get('DEFAULT_PYTHON','python3') DEFAULT_CMAKE_OPTIONS=os.environ.get('DEFAULT_CMAKE_OPTIONS','cmake_options.yml') + class Confirm(object): def __init__(self, cmds): self.cmds = cmds @@ -51,6 +53,7 @@ def __call__(self): else: resp = input("Please answer yes or no: ") + class CMake(object): def __init__(self, cmake_options_yaml=DEFAULT_CMAKE_OPTIONS, cmake_options_yaml_default='cmake/cmake_options.yml'): if os.path.exists(cmake_options_yaml): @@ -93,27 +96,38 @@ def __call__(self, build_dir='build', generator='Ninja', build_cmd='ninja'): logging.info('Now building') check_call(shlex.split(build_cmd)) + def create_virtualenv(venv_exe, pyexe, venv) -> None: logging.info("Creating virtualenv in %s with python %s", venv, pyexe) if not (venv_exe and pyexe and venv): logging.warn("Skipping creation of virtualenv") return check_call([venv_exe, '-p', pyexe, venv]) - activate_this_py = os.path.join(venv, 'bin', 'activate_this.py') - # Activate virtualenv in this interpreter - exec(open(activate_this_py).read(), dict(__file__=activate_this_py)) - check_call(['pip', 'install', '--upgrade','--force-reinstall', '-e', 'python']) - check_call(['pip', 'install', '-r', 'tests/requirements.txt']) + def create_virtualenv_default(): create_virtualenv('virtualenv', DEFAULT_PYTHON, DEFAULT_PYENV) logging.info("You can use the virtualenv by executing 'source %s/bin/activate'", DEFAULT_PYENV) + +def provision_virtualenv(venv_path=DEFAULT_PYENV): + pip = os.path.join(venv_path, 'bin', 'pip') + if os.path.exists(pip): + # Install MXNet python bindigs + check_call([pip, 'install', '--upgrade', '--force-reinstall', '-e', 'python']) + # Install test dependencies + check_call([pip, 'install', '--upgrade', '--force-reinstall', '-r', os.path.join('tests', + 'requirements.txt')]) + else: + logging.warn("Can't find pip: '%s' not found", pip) + + COMMANDS = OrderedDict([ ('[Local] BUILD CMake/Ninja (using cmake_options.yaml (cp cmake/cmake_options.yml .) and edit) ({} virtualenv in "{}")'.format(DEFAULT_PYTHON, DEFAULT_PYENV), [ CMake(), create_virtualenv_default, + provision_virtualenv, ]), ('[Local] Python Unit tests', "./py3_venv/bin/nosetests -v tests/python/unittest/" @@ -209,7 +223,8 @@ def build(args) -> None: else: cmake = CMake() cmake() - create_virtualenv(venv_exe, pyexe, args.venv) + create_virtualenv_default() + provision_virtualenv() def main(): logging.getLogger().setLevel(logging.INFO) From 874fb89cd33b0e4affd7f3fb1b4ae4e09f25ef84 Mon Sep 17 00:00:00 2001 From: Sandeep Krishnamurthy Date: Thu, 9 May 2019 16:12:18 -0700 Subject: [PATCH 12/15] Add API documentation for upsampling operator with examples (#14919) * Add API documentation for upsampling operator with examples * Update src/operator/nn/upsampling.cc Co-Authored-By: Aaron Markham * Update src/operator/nn/upsampling.cc Co-Authored-By: Aaron Markham * Update src/operator/nn/upsampling.cc Co-Authored-By: Aaron Markham * Make API doc example as pseudocode than code --- src/operator/nn/upsampling.cc | 53 +++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/src/operator/nn/upsampling.cc b/src/operator/nn/upsampling.cc index cb57b1b2d16f..971ff6ad560b 100644 --- a/src/operator/nn/upsampling.cc +++ b/src/operator/nn/upsampling.cc @@ -121,9 +121,56 @@ struct UpSamplingGrad { DMLC_REGISTER_PARAMETER(UpSamplingParam); NNVM_REGISTER_OP(UpSampling) -.describe("Performs nearest neighbor/bilinear up sampling to inputs. " - "Bilinear upsampling makes use of deconvolution. Therefore, " - "provide 2 inputs - data and weight. ") +.describe(R"code(Upsamples the given input data. + +Two algorithms (``sample_type``) are available for upsampling: + +- Nearest Neighbor +- Bilinear + +**Nearest Neighbor Upsampling** + +Input data is expected to be NCHW. + +Example:: + + x = [[[[1. 1. 1.] + [1. 1. 1.] + [1. 1. 1.]]]] + + UpSampling(x, scale=2, sample_type='nearest') = [[[[1. 1. 1. 1. 1. 1.] + [1. 1. 1. 1. 1. 1.] + [1. 1. 1. 1. 1. 1.] + [1. 1. 1. 1. 1. 1.] + [1. 1. 1. 1. 1. 1.] + [1. 1. 1. 1. 1. 1.]]]] + +**Bilinear Upsampling** + +Uses `deconvolution` algorithm under the hood. You need provide both input data and the kernel. + +Input data is expected to be NCHW. + +`num_filter` is expected to be same as the number of channels. + +Example:: + + x = [[[[1. 1. 1.] + [1. 1. 1.] + [1. 1. 1.]]]] + + w = [[[[1. 1. 1. 1.] + [1. 1. 1. 1.] + [1. 1. 1. 1.] + [1. 1. 1. 1.]]]] + + UpSampling(x, w, scale=2, sample_type='bilinear', num_filter=1) = [[[[1. 2. 2. 2. 2. 1.] + [2. 4. 4. 4. 4. 2.] + [2. 4. 4. 4. 4. 2.] + [2. 4. 4. 4. 4. 2.] + [2. 4. 4. 4. 4. 2.] + [1. 2. 2. 2. 2. 1.]]]] +)code" ADD_FILELINE) .set_num_inputs([](const NodeAttrs& attrs) { const UpSamplingParam& params = nnvm::get(attrs.parsed); return params.sample_type == up_enum::kNearest ? params.num_args : 2; From f4598e743aa70e189db66e3d696f4cb52441d098 Mon Sep 17 00:00:00 2001 From: perdasilva Date: Fri, 10 May 2019 12:54:32 +0200 Subject: [PATCH 13/15] Pins version of scikit-learn for python2 due to drop in support (#14928) --- ci/docker/install/ubuntu_tutorials.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/docker/install/ubuntu_tutorials.sh b/ci/docker/install/ubuntu_tutorials.sh index 60adf46e6d8a..4e40426ed85c 100755 --- a/ci/docker/install/ubuntu_tutorials.sh +++ b/ci/docker/install/ubuntu_tutorials.sh @@ -23,5 +23,7 @@ set -ex apt-get update || true apt-get install graphviz python-opencv -pip2 install jupyter matplotlib Pillow opencv-python scikit-learn graphviz tqdm mxboard scipy + +# sckit-learn past version 0.20 does not support python version 2 and 3.4 +pip2 install jupyter matplotlib Pillow opencv-python "scikit-learn<0.21.0" graphviz tqdm mxboard scipy pip3 install jupyter matplotlib Pillow opencv-python scikit-learn graphviz tqdm mxboard scipy From 4796851b2fb2254899dd73e56dc9589666fb2d8c Mon Sep 17 00:00:00 2001 From: Zach Kimberg Date: Fri, 10 May 2019 17:12:09 -0700 Subject: [PATCH 14/15] Deprecate NDArrayCollector and instead use ResourceScope (#14780) --- .../main/scala/org/apache/mxnet/NDArray.scala | 14 ++++-- .../org/apache/mxnet/NDArrayCollector.scala | 6 +++ .../org/apache/mxnet/ResourceScope.scala | 46 +++++++++---------- .../org/apache/mxnet/io/NDArrayIter.scala | 2 +- .../benchmark/ScalaInferenceBenchmark.scala | 8 ++-- .../CNNTextClassification.scala | 6 +-- .../customop/ExampleCustomOp.scala | 4 +- .../apache/mxnetexamples/gan/GanMnist.scala | 6 +-- .../ImageClassifierExample.scala | 4 +- .../objectdetector/SSDClassifierExample.scala | 4 +- .../multitask/ExampleMultiTask.scala | 4 +- .../neuralstyle/NeuralStyle.scala | 2 +- .../neuralstyle/end2end/BoostInference.scala | 6 +-- .../neuralstyle/end2end/BoostTrain.scala | 6 +-- .../mxnetexamples/rnn/LstmBucketing.scala | 2 +- .../mxnetexamples/rnn/TestCharRnn.scala | 2 +- .../mxnetexamples/rnn/TrainCharRnn.scala | 2 +- .../CNNClassifierExampleSuite.scala | 2 +- .../mxnetexamples/gan/GanExampleSuite.scala | 2 +- .../neuralstyle/NeuralStyleSuite.scala | 2 +- .../mxnetexamples/rnn/ExampleRNNSuite.scala | 2 +- 21 files changed, 72 insertions(+), 60 deletions(-) diff --git a/scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala b/scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala index 3764f5a4a040..40888012fc5a 100644 --- a/scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala +++ b/scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala @@ -741,10 +741,16 @@ object NDArray extends NDArrayBase { * */ class NDArray private[mxnet](private[mxnet] val handle: NDArrayHandle, - val writable: Boolean = true, - addToCollector: Boolean = true) extends NativeResource { - if (addToCollector) { - NDArrayCollector.collect(this) + val writable: Boolean) extends NativeResource { + + @deprecated("Please use ResourceScope instead", "1.5.0") + def this(handle: NDArrayHandle, + writable: Boolean = true, + addToCollector: Boolean = true) { + this(handle, writable) + if (addToCollector) { + NDArrayCollector.collect(this) + } } override def nativeAddress: CPtrAddress = handle diff --git a/scala-package/core/src/main/scala/org/apache/mxnet/NDArrayCollector.scala b/scala-package/core/src/main/scala/org/apache/mxnet/NDArrayCollector.scala index 0b7f9af705f1..0761481cdfe8 100644 --- a/scala-package/core/src/main/scala/org/apache/mxnet/NDArrayCollector.scala +++ b/scala-package/core/src/main/scala/org/apache/mxnet/NDArrayCollector.scala @@ -64,6 +64,7 @@ import scala.collection.mutable * }); * */ +@deprecated("Please use ResourceScope instead", "1.5.0") object NDArrayCollector { private val logger = LoggerFactory.getLogger(classOf[NDArrayCollector]) @@ -75,12 +76,14 @@ object NDArrayCollector { * Create a collector which will dispose the collected NDArrays automatically. * @return an auto-disposable collector. */ + @deprecated("Please use ResourceScope instead", "1.5.0") def auto(): NDArrayCollector = new NDArrayCollector(true) /** * Create a collector allows users to later dispose the collected NDArray manually. * @return a manually-disposable collector. */ + @deprecated("Please use ResourceScope instead", "1.5.0") @Experimental def manual(): NDArrayCollector = new NDArrayCollector(false) @@ -88,11 +91,13 @@ object NDArrayCollector { * Collect the NDArrays into the collector of the current thread. * @param ndArray NDArrays need to be collected. */ + @deprecated("Please use ResourceScope instead", "1.5.0") @varargs def collect(ndArray: NDArray*): Unit = { currCollector.get().add(ndArray: _*) } } +@deprecated("Please use ResourceScope instead", "1.5.0") class NDArrayCollector private(private val autoDispose: Boolean = true, private val doCollect: Boolean = true) { // native ptr (handle) of the NDArray -> NDArray @@ -142,6 +147,7 @@ class NDArrayCollector private(private val autoDispose: Boolean = true, * @return The result of function codeBlock. */ @Experimental + @deprecated("Please use ResourceScope instead", "1.5.0") def withScope[T](codeBlock: => T): T = { val old = NDArrayCollector.currCollector.get() NDArrayCollector.currCollector.set(this) diff --git a/scala-package/core/src/main/scala/org/apache/mxnet/ResourceScope.scala b/scala-package/core/src/main/scala/org/apache/mxnet/ResourceScope.scala index b955c185b6d1..9a822870749e 100644 --- a/scala-package/core/src/main/scala/org/apache/mxnet/ResourceScope.scala +++ b/scala-package/core/src/main/scala/org/apache/mxnet/ResourceScope.scala @@ -63,6 +63,14 @@ class ResourceScope extends AutoCloseable { resource.scope = Some(this) } + /** + * Check if a NativeResource is in the scope + * @param resource + */ + def contains(resource: NativeResource): Boolean = { + resourceQ.contains(resource) + } + /** * Remove NativeResource from the Scope, this uses * object equality to find the resource in the stack. @@ -80,8 +88,10 @@ class ResourceScope extends AutoCloseable { def moveToOuterScope(resource: NativeResource): Unit = { val prevScope: Option[ResourceScope] = ResourceScope.getPrevScope() if (prevScope.isDefined) { - this.remove(resource) - prevScope.get.add(resource) + if (contains(resource)) { + this.remove(resource) + prevScope.get.add(resource) + } } else this.remove(resource) } @@ -109,20 +119,16 @@ object ResourceScope { val curScope = if (scope != null) scope else new ResourceScope() - @inline def resourceInGeneric(g: scala.collection.Iterable[_]) = { - g.foreach( n => - n match { - case nRes: NativeResource => { - curScope.moveToOuterScope(nRes) - } - case kv: scala.Tuple2[_, _] => { - if (kv._1.isInstanceOf[NativeResource]) curScope.moveToOuterScope( - kv._1.asInstanceOf[NativeResource]) - if (kv._2.isInstanceOf[NativeResource]) curScope.moveToOuterScope( - kv._2.asInstanceOf[NativeResource]) - } - } - ) + def recursiveMoveToOuterScope(resource: Any): Unit = { + resource match { + case nRes: NativeResource => curScope.moveToOuterScope(nRes) + case ndRet: NDArrayFuncReturn => ndRet.arr.foreach( nd => curScope.moveToOuterScope(nd) ) + case resInGeneric: scala.collection.Traversable[_] => + resInGeneric.foreach(recursiveMoveToOuterScope) + case resProduct: scala.Product => + resProduct.productIterator.foreach(recursiveMoveToOuterScope) + case _ => // do nothing + } } @inline def safeAddSuppressed(t: Throwable, suppressed: Throwable): Unit = { @@ -133,13 +139,7 @@ object ResourceScope { try { val ret = body - ret match { - // don't de-allocate if returning any collection that contains NativeResource. - case resInGeneric: scala.collection.Iterable[_] => resourceInGeneric(resInGeneric) - case nRes: NativeResource => curScope.moveToOuterScope(nRes) - case ndRet: NDArrayFuncReturn => ndRet.arr.foreach( nd => curScope.moveToOuterScope(nd) ) - case _ => // do nothing - } + recursiveMoveToOuterScope(ret) ret } catch { case t: Throwable => diff --git a/scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala b/scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala index e9513257c050..cda181823205 100644 --- a/scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala +++ b/scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala @@ -177,7 +177,7 @@ class NDArrayIter(data: IndexedSeq[(DataDesc, NDArray)], val shape = Shape(dataBatchSize) ++ ndArray.shape.slice(1, ndArray.shape.size) // The new NDArray has to be created such that it inherits dtype from the passed in array val newArray = NDArray.zeros(shape, dtype = ndArray.dtype) - NDArrayCollector.auto().withScope { + ResourceScope.using() { val batch = ndArray.slice(cursor, numData) val padding = ndArray.slice(0, padNum) newArray.slice(0, dataBatchSize - padNum).set(batch) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/benchmark/ScalaInferenceBenchmark.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/benchmark/ScalaInferenceBenchmark.scala index dc2faec9dd91..fde9bdbc0abf 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/benchmark/ScalaInferenceBenchmark.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/benchmark/ScalaInferenceBenchmark.scala @@ -50,7 +50,7 @@ object ScalaInferenceBenchmark { List[Long] = { var inferenceTimes: List[Long] = List() for (i <- 1 to totalRuns) { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val startTimeSingle = System.currentTimeMillis() objectToRun.runSingleInference(loadedModel, dataSet) val estimatedTimeSingle = System.currentTimeMillis() - startTimeSingle @@ -67,7 +67,7 @@ object ScalaInferenceBenchmark { var inferenceTimes: List[Long] = List() for (batch <- dataSetBatches) { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val loadedBatch = objecToRun.loadInputBatch(batch) val startTimeSingle = System.currentTimeMillis() objecToRun.runBatchInference(loadedModel, loadedBatch) @@ -133,7 +133,7 @@ object ScalaInferenceBenchmark { logger.info("Running single inference call") // Benchmarking single inference call - NDArrayCollector.auto().withScope { + ResourceScope.using() { val loadedModel = loadModel(exampleToBenchmark, context, false) val dataSet = loadDataSet(exampleToBenchmark) val inferenceTimes = runInference(exampleToBenchmark, loadedModel, dataSet, baseCLI.count) @@ -143,7 +143,7 @@ object ScalaInferenceBenchmark { if (baseCLI.batchSize != 0) { logger.info("Running for batch inference call") // Benchmarking batch inference call - NDArrayCollector.auto().withScope { + ResourceScope.using() { val loadedModel = loadModel(exampleToBenchmark, context, true) val batchDataSet = loadBatchDataSet(exampleToBenchmark, baseCLI.batchSize) val inferenceTimes = runBatchInference(exampleToBenchmark, loadedModel, batchDataSet) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala index d9902e9dcc75..04cc6e240bc2 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala @@ -18,7 +18,7 @@ package org.apache.mxnetexamples.cnntextclassification import org.apache.mxnet.optimizer.RMSProp -import org.apache.mxnet.{Context, Executor, Model, NDArray, NDArrayCollector, Optimizer, Shape, Symbol, Uniform} +import org.apache.mxnet.{Context, Executor, Model, NDArray, Optimizer, ResourceScope, Shape, Symbol, Uniform} import org.kohsuke.args4j.{CmdLineParser, Option} import org.slf4j.LoggerFactory @@ -131,7 +131,7 @@ object CNNTextClassification { numTotal = 0f updateRate = 0 - NDArrayCollector.auto().withScope { + ResourceScope.using() { for (begin <- 0 until trainBatches.length by batchSize) { val (batchD, batchL) = { if (begin + batchSize <= trainBatches.length) { @@ -239,7 +239,7 @@ object CNNTextClassification { def test(w2vFilePath : String, mrDatasetPath: String, ctx : Context, saveModelPath: String) : Float = { - val output = NDArrayCollector.auto().withScope { + val output = ResourceScope.using() { val (numEmbed, word2vec) = DataHelper.loadGoogleModel(w2vFilePath) val (datas, labels) = DataHelper.loadMSDataWithWord2vec( mrDatasetPath, numEmbed, word2vec) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala index 0cfcc49aee04..42922f212c11 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala @@ -19,7 +19,7 @@ package org.apache.mxnetexamples.customop import org.apache.mxnet.Callback.Speedometer import org.apache.mxnet.DType.DType -import org.apache.mxnet.{Accuracy, Context, CustomOp, CustomOpProp, NDArray, NDArrayCollector, Operator, Shape, Symbol, Xavier} +import org.apache.mxnet.{Accuracy, Context, CustomOp, CustomOpProp, NDArray, Operator, ResourceScope, Shape, Symbol, Xavier} import org.apache.mxnet.optimizer.RMSProp import org.kohsuke.args4j.{CmdLineParser, Option} import org.slf4j.LoggerFactory @@ -141,7 +141,7 @@ object ExampleCustomOp { evalMetric.reset() var nBatch = 0 var epochDone = false - NDArrayCollector.auto().withScope { + ResourceScope.using() { trainIter.reset() while (!epochDone) { var doReset = true diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala index 475d91faa0dc..8b312c621758 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala @@ -17,7 +17,7 @@ package org.apache.mxnetexamples.gan -import org.apache.mxnet.{Context, CustomMetric, DataBatch, IO, NDArray, NDArrayCollector, Shape, Symbol, Xavier} +import org.apache.mxnet.{Context, CustomMetric, DataBatch, IO, NDArray, ResourceScope, Shape, Symbol, Xavier} import org.apache.mxnet.optimizer.Adam import org.kohsuke.args4j.{CmdLineParser, Option} import org.slf4j.LoggerFactory @@ -104,7 +104,7 @@ object GanMnist { def runTraining(dataPath : String, context : Context, outputPath : String, numEpoch : Int): Float = { - val output = NDArrayCollector.auto().withScope { + val output = ResourceScope.using() { val lr = 0.0005f val beta1 = 0.5f val batchSize = 100 @@ -147,7 +147,7 @@ object GanMnist { t = 0 while (mnistIter.hasNext) { dataBatch = mnistIter.next() - NDArrayCollector.auto().withScope { + ResourceScope.using() { gMod.update(dataBatch) gMod.dLabel.set(0f) metricAcc.update(Array(gMod.dLabel), gMod.outputsFake) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/imageclassifier/ImageClassifierExample.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/imageclassifier/ImageClassifierExample.scala index c7f2fdac30c3..48e55004cf7b 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/imageclassifier/ImageClassifierExample.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/imageclassifier/ImageClassifierExample.scala @@ -49,7 +49,7 @@ object ImageClassifierExample { def runInferenceOnSingleImage(modelPathPrefix: String, inputImagePath: String, context: Array[Context]): IndexedSeq[IndexedSeq[(String, Float)]] = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val dType = DType.Float32 val inputShape = Shape(1, 3, 224, 224) @@ -71,7 +71,7 @@ object ImageClassifierExample { def runInferenceOnBatchOfImage(modelPathPrefix: String, inputImageDir: String, context: Array[Context]): IndexedSeq[IndexedSeq[(String, Float)]] = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val dType = DType.Float32 val inputShape = Shape(1, 3, 224, 224) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/objectdetector/SSDClassifierExample.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/objectdetector/SSDClassifierExample.scala index 07d1cc82e927..8c5366d6279a 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/objectdetector/SSDClassifierExample.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/infer/objectdetector/SSDClassifierExample.scala @@ -51,7 +51,7 @@ object SSDClassifierExample { def runObjectDetectionSingle(modelPathPrefix: String, inputImagePath: String, context: Array[Context]): IndexedSeq[IndexedSeq[(String, Array[Float])]] = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val dType = DType.Float32 val inputShape = Shape(1, 3, 512, 512) // ssd detections, numpy.array([[id, score, x1, y1, x2, y2]...]) @@ -68,7 +68,7 @@ object SSDClassifierExample { def runObjectDetectionBatch(modelPathPrefix: String, inputImageDir: String, context: Array[Context]): IndexedSeq[IndexedSeq[(String, Array[Float])]] = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val dType = DType.Float32 val inputShape = Shape(1, 3, 512, 512) // ssd detections, numpy.array([[id, score, x1, y1, x2, y2]...]) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala index 5c17a3747ab6..e406c6d21d23 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala @@ -25,7 +25,7 @@ import org.slf4j.LoggerFactory import scala.collection.JavaConverters._ import org.apache.commons.io.FileUtils -import org.apache.mxnet.{Context, DataBatch, DataDesc, DataIter, EvalMetric, Executor, NDArray, NDArrayCollector, Shape, Symbol, Xavier} +import org.apache.mxnet.{Context, DataBatch, DataDesc, DataIter, EvalMetric, Executor, NDArray, ResourceScope, Shape, Symbol, Xavier} import org.apache.mxnet.DType.DType import org.apache.mxnet.optimizer.RMSProp import org.apache.mxnetexamples.Util @@ -222,7 +222,7 @@ object ExampleMultiTask { def train(batchSize: Int, numEpoch: Int, ctx: Context, modelDirPath: String): (Executor, MultiAccuracy) = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val lr = 0.001f val network = ExampleMultiTask.buildNetwork() val (trainIter, valIter) = diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala index 475e179f819b..beb80ced9d4e 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala @@ -170,7 +170,7 @@ object NeuralStyle { contentWeight : Float, tvWeight : Float, gaussianRadius : Int, lr: Float, maxNumEpochs: Int, maxLongEdge: Int, saveEpochs : Int, stopEps: Float) : Unit = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val contentNp = preprocessContentImage(contentImage, maxLongEdge, dev) val styleNp = preprocessStyleImage(styleImage, contentNp.shape, dev) val size = (contentNp.shape(2), contentNp.shape(3)) diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala index b1e6634db80e..cd1ed59b6e6d 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala @@ -17,7 +17,7 @@ package org.apache.mxnetexamples.neuralstyle.end2end -import org.apache.mxnet.{Context, NDArrayCollector, Shape} +import org.apache.mxnet.{Context, ResourceScope, Shape} import org.kohsuke.args4j.{CmdLineParser, Option} import org.slf4j.LoggerFactory @@ -29,7 +29,7 @@ object BoostInference { def runInference(modelPath: String, outputPath: String, guassianRadius : Int, inputImage : String, ctx : Context): Unit = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val dShape = Shape(1, 3, 480, 640) val clipNorm = 1.0f * dShape.product // generator @@ -47,7 +47,7 @@ object BoostInference { DataProcessing.preprocessContentImage(s"$inputImage", dShape, ctx) var data = Array(contentNp) for (i <- 0 until gens.length) { - NDArrayCollector.auto().withScope { + ResourceScope.using() { gens(i).forward(data.takeRight(1)) val newImg = gens(i).getOutputs()(0) data :+= newImg diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala index 8246f44bae2f..1c9adbaf7560 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala @@ -19,7 +19,7 @@ package org.apache.mxnetexamples.neuralstyle.end2end import java.io.File -import org.apache.mxnet.{Context, Executor, NDArray, NDArrayCollector, Shape, Symbol} +import org.apache.mxnet.{Context, Executor, NDArray, ResourceScope, Shape, Symbol} import org.apache.mxnet.optimizer.SGD import org.kohsuke.args4j.{CmdLineParser, Option} import org.slf4j.LoggerFactory @@ -56,7 +56,7 @@ object BoostTrain { def runTraining(dataPath : String, vggModelPath: String, ctx : Context, styleImage : String, saveModelPath : String) : Unit = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { // params val vggParams = NDArray.load2Map(vggModelPath) val styleWeight = 1.2f @@ -117,7 +117,7 @@ object BoostTrain { // train for (i <- startEpoch until endEpoch) { - NDArrayCollector.auto().withScope { + ResourceScope.using() { filelist = Random.shuffle(filelist) for (idx <- filelist.indices) { var dataArray = Array[NDArray]() diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala index 8b2059d2e119..d1a70a755b01 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala @@ -62,7 +62,7 @@ object LstmBucketing { def runTraining(trainData : String, validationData : String, ctx : Array[Context], numEpoch : Int): Unit = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { val batchSize = 32 val buckets = Array(10, 20, 30, 40, 50, 60) val numHidden = 200 diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala index bf2eba660388..750fd9837e53 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala @@ -34,7 +34,7 @@ object TestCharRnn { private val logger = LoggerFactory.getLogger(classOf[TrainCharRnn]) def runInferenceCharRNN(dataPath: String, modelPrefix: String, starterSentence : String): Unit = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { // The batch size for training val batchSize = 32 // We can support various length input diff --git a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala index 68346afe1f47..2704715b0c4d 100644 --- a/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala +++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala @@ -33,7 +33,7 @@ object TrainCharRnn { def runTrainCharRnn(dataPath: String, saveModelPath: String, ctx : Context, numEpoch : Int): Unit = { - NDArrayCollector.auto().withScope { + ResourceScope.using() { // The batch size for training val batchSize = 32 // We can support various length input diff --git a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/cnntextclassification/CNNClassifierExampleSuite.scala b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/cnntextclassification/CNNClassifierExampleSuite.scala index ae0ee33002d9..0424c1262835 100644 --- a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/cnntextclassification/CNNClassifierExampleSuite.scala +++ b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/cnntextclassification/CNNClassifierExampleSuite.scala @@ -21,7 +21,7 @@ import java.io.File import java.net.URL import org.apache.commons.io.FileUtils -import org.apache.mxnet.{Context, NDArrayCollector} +import org.apache.mxnet.Context import org.apache.mxnetexamples.Util import org.scalatest.{BeforeAndAfterAll, FunSuite} import org.slf4j.LoggerFactory diff --git a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/gan/GanExampleSuite.scala b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/gan/GanExampleSuite.scala index 709ea77632e0..f6872aedfe69 100644 --- a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/gan/GanExampleSuite.scala +++ b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/gan/GanExampleSuite.scala @@ -19,7 +19,7 @@ package org.apache.mxnetexamples.gan import java.io.File -import org.apache.mxnet.{Context, NDArrayCollector} +import org.apache.mxnet.Context import org.apache.mxnetexamples.Util import org.scalatest.{BeforeAndAfterAll, FunSuite, Ignore} import org.slf4j.LoggerFactory diff --git a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyleSuite.scala b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyleSuite.scala index c93a7d06a452..5b1cbc525890 100644 --- a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyleSuite.scala +++ b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyleSuite.scala @@ -17,7 +17,7 @@ package org.apache.mxnetexamples.neuralstyle -import org.apache.mxnet.{Context, NDArrayCollector} +import org.apache.mxnet.Context import org.apache.mxnetexamples.Util import org.apache.mxnetexamples.neuralstyle.end2end.{BoostInference, BoostTrain} import org.scalatest.{BeforeAndAfterAll, FunSuite} diff --git a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/rnn/ExampleRNNSuite.scala b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/rnn/ExampleRNNSuite.scala index ff3fbe9e05d2..ca62f484ac20 100644 --- a/scala-package/examples/src/test/scala/org/apache/mxnetexamples/rnn/ExampleRNNSuite.scala +++ b/scala-package/examples/src/test/scala/org/apache/mxnetexamples/rnn/ExampleRNNSuite.scala @@ -18,7 +18,7 @@ package org.apache.mxnetexamples.rnn -import org.apache.mxnet.{Context, NDArrayCollector} +import org.apache.mxnet.Context import org.apache.mxnetexamples.Util import org.scalatest.{BeforeAndAfterAll, FunSuite, Ignore} import org.slf4j.LoggerFactory From b22ee951ae45f7d34b9ae79433f318db5b6bc5ac Mon Sep 17 00:00:00 2001 From: Kellen Sunderland Date: Fri, 10 May 2019 22:15:12 -0700 Subject: [PATCH 15/15] [MXNET-857] Add initial NVTX profiler implementation (#12328) * [MXNET-857] Enable CUDA NVTX extensions for profiler These extensions mark readable ranges in the NVIDIA Visual Profiler which helps show correlations between kernel launches and graph node executions. Example shown here: https://user-images.githubusercontent.com/7443219/33946110-34296d18-e021-11e7-8d18-6d40b797405c.png The additional information enabled is in the 'Markers and Ranges' row. * [MXNET-857] Add initial NVTX profiler implementation This commit removes NVTX headers from the Amalgamation build process, but this is a CUDA/CMake only feature, so it's not relevant to Amalagamation builds. * [MXNET-857] Use macro for NVTX specific code * [MXNET-857] Add integration test. * Turn on NVTX by default in Unix. * Fixed typos and added NTVX info to profiler.md * Add NVTX example to profiling tutorial * Add NVTX flags for make --- CMakeLists.txt | 10 +++ Makefile | 5 ++ amalgamation/amalgamation.py | 2 +- cmake/Modules/FindNVTX.cmake | 38 +++++++++++ docs/api/python/profiler/profiler.md | 4 +- docs/tutorials/python/profiler.md | 25 +++++++- docs/tutorials/python/profiler_nvprof.png | Bin 0 -> 235747 bytes .../python/profiler_nvprof_zoomed.png | Bin 0 -> 254663 bytes docs/tutorials/python/profiler_winograd.png | Bin 0 -> 75450 bytes make/config.mk | 3 + src/profiler/nvtx.cc | 21 +++++++ src/profiler/nvtx.h | 59 ++++++++++++++++++ src/profiler/profiler.h | 20 ++++++ tests/python/profiling/simple_forward.py | 42 +++++++++++++ tests/python/profiling/test_nvtx.py | 52 +++++++++++++++ 15 files changed, 277 insertions(+), 4 deletions(-) create mode 100644 cmake/Modules/FindNVTX.cmake create mode 100644 docs/tutorials/python/profiler_nvprof.png create mode 100644 docs/tutorials/python/profiler_nvprof_zoomed.png create mode 100644 docs/tutorials/python/profiler_winograd.png create mode 100644 src/profiler/nvtx.cc create mode 100644 src/profiler/nvtx.h create mode 100644 tests/python/profiling/simple_forward.py create mode 100644 tests/python/profiling/test_nvtx.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f8c33b6a23d..896c7b75a1ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,6 +290,16 @@ if(USE_CUDA) message(WARNING "Could not find NCCL libraries") endif() endif() + if(UNIX) + find_package(NVTX) + if(NVTX_FOUND) + include_directories(${NVTX_INCLUDE_DIRS}) + list(APPEND mxnet_LINKER_LIBS ${NVTX_LIBRARIES}) + add_definitions(-DMXNET_USE_NVTX=1) + else() + message(WARNING "Could not find NVTX libraries") + endif() + endif() else() add_definitions(-DMSHADOW_USE_CUDA=0) endif() diff --git a/Makefile b/Makefile index df0fe8809456..b578683a74b6 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,11 @@ ifeq ($(ENABLE_TESTCOVERAGE), 1) LDFLAGS += --coverage endif +ifeq ($(USE_NVTX), 1) + CFLAGS += -DMXNET_USE_NVTX=1 + LDFLAGS += -lnvToolsExt +endif + ifeq ($(USE_TENSORRT), 1) CFLAGS += -I$(ROOTDIR) -I$(TPARTYDIR) -DONNX_NAMESPACE=$(ONNX_NAMESPACE) -DMXNET_USE_TENSORRT=1 LDFLAGS += -lprotobuf -pthread -lonnx -lonnx_proto -lnvonnxparser -lnvonnxparser_runtime -lnvinfer -lnvinfer_plugin diff --git a/amalgamation/amalgamation.py b/amalgamation/amalgamation.py index e47ab6b0e22e..fef54aaecba4 100644 --- a/amalgamation/amalgamation.py +++ b/amalgamation/amalgamation.py @@ -30,7 +30,7 @@ 'opencv2/opencv.hpp', 'sys/stat.h', 'sys/types.h', 'cuda.h', 'cuda_fp16.h', 'omp.h', 'onnx/onnx.pb.h', 'execinfo.h', 'packet/sse-inl.h', 'emmintrin.h', 'thrust/device_vector.h', 'cusolverDn.h', 'internal/concurrentqueue_internal_debug.h', 'relacy/relacy_std.hpp', - 'relacy_shims.h', 'ittnotify.h', 'shared_mutex' + 'relacy_shims.h', 'ittnotify.h', 'shared_mutex', 'nvToolsExt.h' ] minimum = int(sys.argv[6]) if len(sys.argv) > 5 else 0 diff --git a/cmake/Modules/FindNVTX.cmake b/cmake/Modules/FindNVTX.cmake new file mode 100644 index 000000000000..bf05eaeb092c --- /dev/null +++ b/cmake/Modules/FindNVTX.cmake @@ -0,0 +1,38 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set(NVTX_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA NVTX") + +find_path(NVTX_INCLUDE_DIRS + NAMES nvToolsExt.h + PATHS $ENV{NVTOOLSEXT_PATH} ${NVTX_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR} + PATH_SUFFIXES include + ) + +find_library(NVTX_LIBRARIES + NAMES nvToolsExt64_1.lib nvToolsExt32_1.lib nvToolsExt + PATHS $ENV{NVTOOLSEXT_PATH} ${NVTX_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR} + PATH_SUFFIXES lib lib64 lib/Win32 lib/x64 + ) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(NVTX DEFAULT_MSG NVTX_INCLUDE_DIRS NVTX_LIBRARIES) + +if(NVTX_FOUND) + message(STATUS "Found NVTX (include: ${NVTX_INCLUDE_DIRS}, library: ${NVTX_LIBRARIES})") + mark_as_advanced(NVTX_ROOT_DIR NVTX_INCLUDE_DIRS NVTX_LIBRARIES) +endif() diff --git a/docs/api/python/profiler/profiler.md b/docs/api/python/profiler/profiler.md index 565495e27c02..c025811f5a5d 100644 --- a/docs/api/python/profiler/profiler.md +++ b/docs/api/python/profiler/profiler.md @@ -2,7 +2,7 @@ ## Overview -MXNet has a built-in profiler which is compatibule with both Intel® VTune™ Amplifier as well as Chrome's chrome://tracing visualization engine. When built witht he USE_VTUNE=1 flag, MXNet makes actual VTune API calls to define Domains, Frames, Tasks, Events Counters, and Markers. For a detailed explanation of these, see [Instrumentation and Tracing Technology API Reference ](https://software.intel.com/en-us/vtune-amplifier-help-instrumentation-and-tracing-technology-api-reference) +MXNet has a built-in profiler which is compatible with Intel® VTune™ Amplifier, NVIDIA NVTX and Chrome's chrome://tracing visualization engine. When built with the USE_VTUNE=1 flag, MXNet makes VTune API calls to define Domains, Frames, Tasks, Events Counters, and Markers. For a detailed explanation of these, see [Instrumentation and Tracing Technology API Reference ](https://software.intel.com/en-us/vtune-amplifier-help-instrumentation-and-tracing-technology-api-reference). When built with CUDA NVTX ranges will be inserted into any profiles generated, which can subsequently be viewed view NVProf. ```eval_rst .. autosummary:: @@ -34,7 +34,7 @@ MXNet has a built-in profiler which is compatibule with both Intel® VTune™ Am ### Profiling Objects -These profiling objects can be created and accessed from python in order to resord performance information of the python code paths +These profiling objects can be created and accessed from python in order to record performance information of the python code paths. ```eval_rst .. autosummary:: diff --git a/docs/tutorials/python/profiler.md b/docs/tutorials/python/profiler.md index fe7611aa538f..d3e3355b8f4a 100644 --- a/docs/tutorials/python/profiler.md +++ b/docs/tutorials/python/profiler.md @@ -185,7 +185,7 @@ MXNet executes computation graphs in 'bulk mode' which reduces kernel launch gap ### Viewing profiler output -There are two ways to view the information collected by the profiler. You can either view it in the console or you can view a more graphical version in a browser. +There are a few ways to view the information collected by the profiler. You can view it in the console, you can view a more graphical version in a browser, or you can use a vendor tool such as Intel VTune or Nvidia NVProf to view output. For most scenarios the information you need can be obtained with MXNet's built in profiler support, but if you want to investigate the performance of operators along side extra context about your hardware (e.g. cache hit rates, or CUDA kernel timings) then profiling jointly with vendor tools is recommended. #### 1. View in console @@ -215,6 +215,29 @@ Let's zoom in to check the time taken by operators The above picture visualizes the sequence in which the operators were executed and the time taken by each operator. +#### 3. View in NVProf + +You can view all MXNet profiler information alongside CUDA kernel information by using the MXNet profiler along with NVProf. Use the MXNet profiler as in the samples above, but invoke your python script with the following wrapper process available on most systems that support CUDA: + +```bash +nvprof -o my_profile.nvvp python my_profiler_script.py +==11588== NVPROF is profiling process 11588, command: python my_profiler_script.py +==11588== Generated result file: /home/kellen/Development/incubator-mxnet/ci/my_profile.nvvp +``` +Your my_profile.nvvp file will automatically be annotated with NVTX ranges displayed alongside your standard NVProf timeline. This can be very useful when you're trying to find patterns between operators run by MXNet, and their associated CUDA kernel calls. + +![Operator profiling](profiler_nvprof.png) + +In this picture we see a rough overlay of a few types of information plotted on a horizontal timeline. At the top of the plot we have CPU tasks such as driver operations, memory copy calls, MXNet engine operator invocations, and imperative MXNet API calls. Below we see the kernels active on the GPU during the same time period. + +![Operator profiling](profiler_nvprof_zoomed.png) + +Zooming in on a backwards convolution operator we can see that it is in fact made up of a number of different GPU kernel calls, including a cuDNN winograd convolution call, and a fast-fourier transform call. + +![Operator profiling](profiler_winograd.png) + +Selecting any of these kernel calls (the winograd convolution call shown here) will get you some interesting GPU performance information such as occupancy rates (vs theoretical), shared memory usage and execution duration. + ### Further reading - [Examples using MXNet profiler.](https://github.com/apache/incubator-mxnet/tree/master/example/profiler) diff --git a/docs/tutorials/python/profiler_nvprof.png b/docs/tutorials/python/profiler_nvprof.png new file mode 100644 index 0000000000000000000000000000000000000000..37d8615c2b54b4a61490412469eebb911af8768d GIT binary patch literal 235747 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
Ms<|wX>0946^1 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�E;@i9PhJJPe~7j4tVrCn2NM+vM|iQBYtPsf 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 z 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 I8~^%$0R8=g{{R30 literal 0 HcmV?d00001 diff --git a/docs/tutorials/python/profiler_nvprof_zoomed.png b/docs/tutorials/python/profiler_nvprof_zoomed.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6b6e88e93d1d8a72420cd1543b77af49b4149b GIT binary patch literal 254663 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 $) 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 +#include +#include "nvToolsExt.h" + +namespace mxnet { +namespace profiler { +namespace nvtx { + +class NVTXDuration { + public: + explicit NVTXDuration(const char *name) noexcept + : range_id_(0), name_(name) {} + + inline void start() { + range_id_ = nvtxRangeStartA(name_); + } + + inline void stop() { + nvtxRangeEnd(range_id_); + } + + private: + nvtxRangeId_t range_id_; + const char *name_; +}; + + + +} // namespace nvtx +} // namespace profiler +} // namespace mxnet + +#endif // MXNET_USE_NVTX +#endif // MXNET_PROFILER_NVTX_H_ diff --git a/src/profiler/profiler.h b/src/profiler/profiler.h index f1fac9ae8ddd..f9eb0af9acc1 100644 --- a/src/profiler/profiler.h +++ b/src/profiler/profiler.h @@ -35,6 +35,7 @@ #include #include "./vtune.h" #include "./aggregate_stats.h" +#include "./nvtx.h" #if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__) #include @@ -489,6 +490,12 @@ class Profiler { #define VTUNE_ONLY_CODE(...) /* */ /* This is undefined at the bottom of this file */ #endif +#ifdef MXNET_USE_NVTX +#define NVTX_ONLY_CODE(...) __VA_ARGS__ /* This is undefined at the bottom of this file */ +#else +#define NVTX_ONLY_CODE(...) /* */ /* This is undefined at the bottom of this file */ +#endif + /** * _____ __ _ _ _ ____ _ _ _ * | __ \ / _|(_)| |(_) / __ \| | (_) | | @@ -777,6 +784,7 @@ struct ProfileTask : public ProfileDuration { categories_.set(domain_->name()); categories_.append(",task"); VTUNE_ONLY_CODE(vtune_task_.reset(new vtune::VTuneTask(name, domain->dom()))); + NVTX_ONLY_CODE(nvtx_duration_.reset(new nvtx::NVTXDuration(name))); } /*! @@ -785,6 +793,7 @@ struct ProfileTask : public ProfileDuration { void start() override { start_time_ = ProfileStat::NowInMicrosec(); VTUNE_ONLY_CODE(vtune_task_->start()); + NVTX_ONLY_CODE(nvtx_duration_->start()); } /*! @@ -792,6 +801,7 @@ struct ProfileTask : public ProfileDuration { */ void stop() override { VTUNE_ONLY_CODE(vtune_task_->stop()); + NVTX_ONLY_CODE(nvtx_duration_->stop()); SendStat(); } @@ -831,6 +841,8 @@ struct ProfileTask : public ProfileDuration { ProfileDomain *domain_; /*! \brief VTune task object */ VTUNE_ONLY_CODE(std::unique_ptr vtune_task_); + /*! \brief NVTX duration object */ + NVTX_ONLY_CODE(std::unique_ptr nvtx_duration_); protected: /*! \brief Task's start tick */ @@ -849,6 +861,7 @@ struct ProfileEvent : public ProfileDuration { : name_(name) , categories_("event") { VTUNE_ONLY_CODE(vtune_event_ = vtune::VTuneEvent::registry_.get(name)); + NVTX_ONLY_CODE(nvtx_duration_.reset(new nvtx::NVTXDuration(name))); } /*! @@ -857,6 +870,7 @@ struct ProfileEvent : public ProfileDuration { void start() override { start_time_ = ProfileStat::NowInMicrosec(); VTUNE_ONLY_CODE(vtune_event_->start()); + NVTX_ONLY_CODE(nvtx_duration_->start()); } /*! @@ -905,6 +919,8 @@ struct ProfileEvent : public ProfileDuration { profile_stat_string categories_; /*! \brief VTune event object */ VTUNE_ONLY_CODE(vtune::VTuneEvent *vtune_event_); + /*! \brief NVTX duration object */ + NVTX_ONLY_CODE(std::unique_ptr nvtx_duration_;); protected: /*! \brief Start time of the event */ @@ -926,6 +942,7 @@ struct ProfileFrame : public ProfileDuration { CHECK_NOTNULL(domain); categories_.set(domain_->name()); categories_.append(",frame"); + NVTX_ONLY_CODE(nvtx_duration_.reset(new nvtx::NVTXDuration(name))); VTUNE_ONLY_CODE(vtune_frame_.reset(new vtune::VTuneFrame(domain->dom()))); } @@ -935,6 +952,7 @@ struct ProfileFrame : public ProfileDuration { void start() override { start_time_ = ProfileStat::NowInMicrosec(); VTUNE_ONLY_CODE(vtune_frame_->start()); + NVTX_ONLY_CODE(nvtx_duration_->start()); } /*! @@ -977,6 +995,8 @@ struct ProfileFrame : public ProfileDuration { ProfileDomain *domain_; /*! \brief VTune Frame object */ VTUNE_ONLY_CODE(std::unique_ptr vtune_frame_); + /*! \brief NVTX duration object */ + NVTX_ONLY_CODE(std::unique_ptr nvtx_duration_); protected: /*! \brief Frame start time */ diff --git a/tests/python/profiling/simple_forward.py b/tests/python/profiling/simple_forward.py new file mode 100644 index 000000000000..0ad43c89a6f5 --- /dev/null +++ b/tests/python/profiling/simple_forward.py @@ -0,0 +1,42 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +import mxnet as mx +from mxnet.gluon import nn + + +def simple_forward(): + ctx = mx.gpu() + mx.profiler.set_config(profile_all=True) + mx.profiler.set_state('run') + + # define simple gluon network with random weights + net = nn.Sequential() + with net.name_scope(): + net.add(nn.Dense(128, activation='relu')) + net.add(nn.Dense(64, activation='relu')) + net.add(nn.Dense(10)) + net.initialize(mx.init.Xavier(magnitude=2.24), ctx=ctx) + + input = mx.nd.zeros((128,), ctx=ctx) + predictions = net(input) + print('Ran simple NN forward, results:') + print(predictions.asnumpy()) + + +if __name__ == '__main__': + simple_forward() diff --git a/tests/python/profiling/test_nvtx.py b/tests/python/profiling/test_nvtx.py new file mode 100644 index 000000000000..35b209ebb6eb --- /dev/null +++ b/tests/python/profiling/test_nvtx.py @@ -0,0 +1,52 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +import os +import unittest + +import mxnet as mx +import sys + +from subprocess import Popen, PIPE + + +def test_nvtx_ranges_present_in_profile(): + + if not mx.test_utils.list_gpus(): + unittest.skip('Test only applicable to machines with GPUs') + + # Build a system independent wrapper to execute simple_forward with nvprof + # This requires nvprof to be on your path (which should be the case for most GPU workstations with cuda installed). + simple_forward_path = os.path.realpath(__file__) + simple_forward_path = simple_forward_path.replace('test_nvtx', 'simple_forward') + + process = Popen(["nvprof", sys.executable, simple_forward_path], stdout=PIPE, stderr=PIPE) + (output, profiler_output) = process.communicate() + process.wait() + profiler_output = profiler_output.decode('ascii') + + # Verify that some of the NVTX ranges we should have created are present + # Verify that we have NVTX ranges for our simple operators. + assert "Range \"FullyConnected\"" in profiler_output + assert "Range \"_zeros\"" in profiler_output + + # Verify that we have some expected output from the engine. + assert "Range \"WaitForVar\"" in profiler_output + + +if __name__ == '__main__': + import nose + nose.runmodule()