From ec5f66a63520365c93c1d05c9400567da19eb8fe Mon Sep 17 00:00:00 2001 From: Rohit Kumar Srivastava <srivastava.141@buckeyemail.osu.edu> Date: Tue, 28 Jul 2020 11:48:48 +0000 Subject: [PATCH] adding error message when attempting to use Large tensor with linalg_syevd --- src/operator/tensor/la_op.h | 2 ++ tests/nightly/test_large_array.py | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/operator/tensor/la_op.h b/src/operator/tensor/la_op.h index e15390ecde5a..cd097781243b 100644 --- a/src/operator/tensor/la_op.h +++ b/src/operator/tensor/la_op.h @@ -475,6 +475,8 @@ inline bool LaEigFactShape(const nnvm::NodeAttrs& attrs, const mxnet::TShape& in_a = (*in_attrs)[0]; const mxnet::TShape& out_u = (*out_attrs)[0]; const mxnet::TShape& out_l = (*out_attrs)[1]; + CHECK_LE(in_a.Size(), INT_MAX) + << "Large tensors are not supported by Linear Algebra operator syevd"; if ( in_a.ndim() >= 2 ) { // Forward shape inference. const int ndim(in_a.ndim()); diff --git a/tests/nightly/test_large_array.py b/tests/nightly/test_large_array.py index 8865eae2b81e..d55d4e55cc6e 100644 --- a/tests/nightly/test_large_array.py +++ b/tests/nightly/test_large_array.py @@ -27,7 +27,8 @@ from mxnet.test_utils import rand_ndarray, assert_almost_equal, rand_coord_2d, default_context, check_symbolic_forward, create_2d_tensor, get_identity_mat, get_identity_mat_batch from mxnet import gluon, nd -from common import with_seed, with_post_test_cleanup +from common import with_seed, with_post_test_cleanup, assertRaises +from mxnet.base import MXNetError from nose.tools import with_setup import unittest @@ -1352,6 +1353,16 @@ def run_trsm(inp): check_batch_trsm() +def test_linalg_errors(): + def check_syevd_error(): + A = get_identity_mat(LARGE_SQ_X) + for i in range(LARGE_SQ_X): + A[i,i] = 1 + assertRaises(MXNetError, mx.nd.linalg.syevd, A) + + check_syevd_error() + + def test_basic(): def check_elementwise(): a = nd.ones(shape=(LARGE_X, SMALL_Y))