# - disable inplace test, if set to True, no inplace test will be done (default=False)
# - decorator, e.g., unittest.skipIf (default is no decorator)
tests = [
- ('add', small_3d, lambda t: [number(3.14, 3, t)], '', types, False,
- "skipIfRocm:ByteTensor,CharTensor,HalfTensor,ShortTensor"),
+ ('add', small_3d, lambda t: [number(3.14, 3, t)]),
('add', small_3d, lambda t: [small_3d_positive(t)], 'tensor'),
('add', small_3d, lambda t: [number(0.2, 2, t), small_3d_positive(t)], 'scalar_tensor'),
- ('sub', small_3d, lambda t: [number(3.14, 3, t)], '', types, False,
- "skipIfRocm:ByteTensor,CharTensor,HalfTensor,ShortTensor"),
+ ('sub', small_3d, lambda t: [number(3.14, 3, t)]),
('sub', small_3d, lambda t: [small_3d_positive(t)], 'tensor'),
- ('mul', small_3d, lambda t: [number(3.14, 3, t)], '', types, False,
- "skipIfRocm:ByteTensor,CharTensor,HalfTensor,ShortTensor"),
+ ('mul', small_3d, lambda t: [number(3.14, 3, t)]),
('mul', small_3d, lambda t: [small_3d_positive(t)], 'tensor'),
('mul', small_0d, lambda t: [small_0d(torch.IntTensor)], 'scalar', types, True),
- ('div', small_3d, lambda t: [number(3.14, 3, t)], '', types, False,
- "skipIfRocm:ByteTensor,CharTensor,FloatTensor,HalfTensor,ShortTensor"),
+ ('div', small_3d, lambda t: [number(3.14, 3, t)]),
('div', small_3d, lambda t: [small_3d_positive(t)], 'tensor'),
('pow', small_3d, lambda t: [number(3.14, 3, t)], None, float_types),
('pow', small_3d, lambda t: [number(1., 1, t)], 'pow1'),
('pow', small_3d, lambda t: [number(3., 3, t)], 'pow3'),
('pow', small_3d, lambda t: [number(-1., -1, t)], 'pow-1', float_types),
# HalfTensor gives bad result at pow-2 with data sampled from torch.randn
- ('pow', small_3d, lambda t: [number(-2., -2, t)], 'pow-2', float_types_no_half,
- False, "skipIfRocm:HalfTensor,FloatTensor"),
- ('pow', small_3d, lambda t: [tensor_abs_(small_3d(t))], 'tensor', float_types, False, "skipIfRocm:HalfTensor"),
- ('addbmm', small_2d, lambda t: [small_3d(t), small_3d(t)], None, float_types, False, "skipIfRocm:HalfTensor"),
- ('addbmm', small_2d, lambda t: [number(0.4, 2, t), small_3d(t), small_3d(t)], 'scalar',
- types, False, "skipIfRocm:HalfTensor"),
- ('addbmm', small_2d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), small_3d(t), small_3d(t)], 'two_scalars',
- types, False, "skipIfRocm:HalfTensor"),
+ ('pow', small_3d, lambda t: [number(-2., -2, t)], 'pow-2', float_types_no_half, False,
+ "skipIfRocm:FloatTensor"),
+ ('pow', small_3d, lambda t: [tensor_abs_(small_3d(t))], 'tensor', float_types),
+ ('addbmm', small_2d, lambda t: [small_3d(t), small_3d(t)], None, float_types),
+ ('addbmm', small_2d, lambda t: [number(0.4, 2, t), small_3d(t), small_3d(t)], 'scalar'),
+ ('addbmm', small_2d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), small_3d(t), small_3d(t)], 'two_scalars'),
('baddbmm', small_3d, lambda t: [small_3d(t), small_3d(t)], '', types, False, "skipIfRocm:HalfTensor"),
- ('baddbmm', small_3d, lambda t: [number(0.4, 2, t), small_3d(t), small_3d(t)], 'scalar',
- types, False, "skipIfRocm:HalfTensor"),
- ('baddbmm', small_3d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), small_3d(t), small_3d(t)], 'two_scalars',
- types, False, "skipIfRocm:HalfTensor"),
- ('bmm', small_3d, lambda t: [small_3d(t)], '', float_types_no_half, False, "skipIfRocm:HalfTensor"),
- ('addcdiv', small_2d_lapack, lambda t: [tensor_mul(small_2d_lapack(t), 2), small_2d_lapack(t)], '',
- types, False, "skipIfRocm:HalfTensor"),
+ ('baddbmm', small_3d, lambda t: [number(0.4, 2, t), small_3d(t), small_3d(t)], 'scalar'),
+ ('baddbmm', small_3d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), small_3d(t), small_3d(t)], 'two_scalars'),
+ ('bmm', small_3d, lambda t: [small_3d(t)], '', float_types_no_half),
+ ('addcdiv', small_2d_lapack, lambda t: [tensor_mul(small_2d_lapack(t), 2), small_2d_lapack(t)]),
('addcdiv', small_2d_lapack, lambda t: [number(2.8, 1, t), tensor_mul(small_2d_lapack(t), 2), small_2d_lapack(t)],
- 'scalar', types, False, "skipIfRocm:HalfTensor"),
- ('addcmul', small_3d, lambda t: [small_3d(t), small_3d(t)], '', types, False, "skipIfRocm:HalfTensor"),
- ('addcmul', small_3d, lambda t: [number(0.4, 2, t), small_3d(t), small_3d(t)], 'scalar',
- types, False, "skipIfRocm:HalfTensor"),
- ('addmm', medium_2d, lambda t: [medium_2d(t), medium_2d(t)], '', types, False, "skipIfRocm:HalfTensor"),
- ('addmm', medium_2d, lambda t: [number(0.4, 2, t), medium_2d(t), medium_2d(t)], 'scalar',
- types, False, "skipIfRocm:HalfTensor"),
- ('addmm', medium_2d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), medium_2d(t), medium_2d(t)], 'two_scalars',
- types, False, "skipIfRocm:HalfTensor"),
+ 'scalar'),
+ ('addcmul', small_3d, lambda t: [small_3d(t), small_3d(t)]),
+ ('addcmul', small_3d, lambda t: [number(0.4, 2, t), small_3d(t), small_3d(t)], 'scalar'),
+ ('addmm', medium_2d, lambda t: [medium_2d(t), medium_2d(t)]),
+ ('addmm', medium_2d, lambda t: [number(0.4, 2, t), medium_2d(t), medium_2d(t)], 'scalar'),
+ ('addmm', medium_2d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), medium_2d(t), medium_2d(t)], 'two_scalars'),
('addmv', medium_1d, lambda t: [medium_2d(t), medium_1d(t)], '', types, False, "skipIfRocm:HalfTensor"),
('addmv', medium_1d, lambda t: [number(0.4, 2, t), medium_2d(t), medium_1d(t)], 'scalar',
types, False, "skipIfRocm:HalfTensor"),
('addmv', medium_1d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), medium_2d(t), medium_1d(t)], 'two_scalars',
types, False, "skipIfRocm:HalfTensor"),
- ('addr', medium_2d, lambda t: [medium_1d(t), medium_1d(t)], '', types, False, "skipIfRocm:HalfTensor"),
- ('addr', medium_2d, lambda t: [number(0.4, 2, t), medium_1d(t), medium_1d(t)], 'scalar',
- types, False, "skipIfRocm:HalfTensor"),
- ('addr', medium_2d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), medium_1d(t), medium_1d(t)], 'two_scalars',
- types, False, "skipIfRocm:HalfTensor"),
+ ('addr', medium_2d, lambda t: [medium_1d(t), medium_1d(t)]),
+ ('addr', medium_2d, lambda t: [number(0.4, 2, t), medium_1d(t), medium_1d(t)], 'scalar'),
+ ('addr', medium_2d, lambda t: [number(0.5, 3, t), number(0.4, 2, t), medium_1d(t), medium_1d(t)], 'two_scalars'),
('atan2', medium_2d, lambda t: [medium_2d(t)], None, float_types + [torch.HalfTensor]),
('fmod', small_3d, lambda t: [3], 'value', types, False, "skipIfRocm:HalfTensor"),
('fmod', small_3d, lambda t: [small_3d_positive(t)], 'tensor'),
('clone', medium_2d, lambda t: [],),
('contiguous', medium_2d, lambda t: [],),
('cross', new_t(M, 3, M), lambda t: [new_t(M, 3, M)(t)],),
- ('cumprod', small_3d, lambda t: [1], '', types, False, "skipIfRocm:HalfTensor"),
- ('cumprod', small_3d, lambda t: [-1], 'neg_dim', types, False, "skipIfRocm:HalfTensor"),
- ('cumsum', small_3d, lambda t: [1], '', types, False, "skipIfRocm:HalfTensor"),
- ('cumsum', small_3d, lambda t: [-1], 'neg_dim', types, False, "skipIfRocm:HalfTensor"),
+ ('cumprod', small_3d, lambda t: [1]),
+ ('cumprod', small_3d, lambda t: [-1], 'neg_dim'),
+ ('cumsum', small_3d, lambda t: [1]),
+ ('cumsum', small_3d, lambda t: [-1], 'neg_dim'),
('dim', small_3d, lambda t: [],),
- ('dist', small_2d, lambda t: [small_2d(t)], '', types, False, "skipIfRocm:HalfTensor"),
- ('dist', small_2d, lambda t: [small_2d(t), 3], '3_norm', types, False, "skipIfRocm:HalfTensor"),
- ('dist', small_2d, lambda t: [small_2d(t), 2.5], '2_5_norm', types, False, "skipIfRocm:HalfTensor"),
+ ('dist', small_2d, lambda t: [small_2d(t)]),
+ ('dist', small_2d, lambda t: [small_2d(t), 3], '3_norm'),
+ ('dist', small_2d, lambda t: [small_2d(t), 2.5], '2_5_norm'),
('dot', medium_1d, lambda t: [medium_1d(t)], '', types, False, "skipIfRocm:HalfTensor"),
('element_size', medium_1d, lambda t: [],),
('eq', small_3d_ones, lambda t: [small_3d(t)],),
('equal', small_3d_ones, lambda t: [small_3d(t)],),
('expand', new_t(M, 1, M), lambda t: [M, 4, M],),
('expand_as', new_t(M, 1, M), lambda t: [new_t(M, 4, M)(t)],),
- ('fill', medium_2d, lambda t: [number(3.14, 3, t)], '', types, False, "skipIfRocm:HalfTensor"),
+ ('fill', medium_2d, lambda t: [number(3.14, 3, t)]),
('ge', medium_2d, lambda t: [medium_2d(t)],),
('le', medium_2d, lambda t: [medium_2d(t)],),
('gt', medium_2d, lambda t: [medium_2d(t)],),
('remainder', small_3d, lambda t: [-3], 'negative_value', signed_types),
('remainder', small_3d, lambda t: [small_3d_positive(t)], 'tensor'),
('remainder', small_3d, lambda t: [constant_tensor_sub(0, small_3d_positive(t))], 'negative_tensor', signed_types),
- ('std', small_3d, lambda t: [], '', types, False, skipIfRocm),
+ ('std', small_3d, lambda t: []),
('std', small_3d, lambda t: [1], 'dim', types, False, skipIfRocm),
('std', small_3d, lambda t: [-1], 'neg_dim', types, False, skipIfRocm),
- ('var', small_3d, lambda t: [], '', types, False, skipIfRocm),
- ('var', small_3d, lambda t: [1], 'dim', types, False, skipIfRocm),
- ('var', small_3d, lambda t: [-1], 'neg_dim', types, False, skipIfRocm),
+ ('var', small_3d, lambda t: []),
+ ('var', small_3d, lambda t: [1], 'dim'),
+ ('var', small_3d, lambda t: [-1], 'neg_dim'),
('ndimension', small_3d, lambda t: [],),
('nelement', small_3d, lambda t: [],),
('numel', small_3d, lambda t: [],),
('narrow', small_3d, lambda t: [1, 3, 2],),
('narrow', small_3d, lambda t: [-1, 3, 2], 'neg_dim'),
('nonzero', small_3d, lambda t: [], '', types, False, skipIfRocm),
- ('norm', small_3d, lambda t: [], '', types, False, "skipIfRocm:HalfTensor"),
- ('norm', small_3d, lambda t: [3], '3_norm', types, False, "skipIfRocm:HalfTensor"),
- ('norm', small_3d, lambda t: [3, 0], '3_norm_dim', types, False, "skipIfRocm:HalfTensor,DoubleTensor,FloatTensor"),
- ('norm', small_3d, lambda t: [3, -2], '3_norm_neg_dim', types,
- False, "skipIfRocm:HalfTensor,DoubleTensor,FloatTensor"),
+ ('norm', small_3d, lambda t: []),
+ ('norm', small_3d, lambda t: [3], '3_norm'),
+ ('norm', small_3d, lambda t: [3, 0], '3_norm_dim'),
+ ('norm', small_3d, lambda t: [3, -2], '3_norm_neg_dim'),
('ones', small_3d, lambda t: [1, 2, 3, 4, 5],),
('permute', new_t(1, 2, 3, 4), lambda t: [2, 1, 3, 0],),
('put_', new_t(2, 5, 3), lambda t: [long_type(t)([[0], [-2]]), t([[3], [4]])], '', types, False, skipIfRocm),
('put_', new_t(2, 3), lambda t: [long_type(t)([]), t([])], 'empty'),
('put_', new_t(2, 2), lambda t: [long_type(t)([[1], [-3]]), t([[1], [2]]), True], 'accumulate'),
- ('prod', small_2d_oneish, lambda t: [], '', types, False, "skipIfRocm:HalfTensor"),
- ('prod', small_3d, lambda t: [1], 'dim', types, False, skipIfRocm),
- ('prod', small_3d, lambda t: [-1], 'neg_dim', types, False, skipIfRocm),
- ('sum', small_2d, lambda t: [], '', types, False, "skipIfRocm:HalfTensor"),
- ('sum', small_3d, lambda t: [1], 'dim', types, False, skipIfRocm),
- ('sum', small_3d, lambda t: [-1], 'neg_dim', types, False, skipIfRocm),
- ('renorm', small_3d, lambda t: [2, 1, 1], '2_norm', types, False, "skipIfRocm:HalfTensor,DoubleTensor,FloatTensor"),
- ('renorm', small_3d, lambda t: [2, -1, 1], '2_norm_neg_dim', types,
- False, "skipIfRocm:HalfTensor,DoubleTensor,FloatTensor"),
- ('renorm', small_3d, lambda t: [1.5, 1, 1], '1_5_norm', types,
- False, "skipIfRocm:HalfTensor,DoubleTensor,FloatTensor"),
+ ('prod', small_2d_oneish, lambda t: []),
+ ('prod', small_3d, lambda t: [1], 'dim'),
+ ('prod', small_3d, lambda t: [-1], 'neg_dim'),
+ ('sum', small_2d, lambda t: []),
+ ('sum', small_3d, lambda t: [1], 'dim'),
+ ('sum', small_3d, lambda t: [-1], 'neg_dim'),
+ ('renorm', small_3d, lambda t: [2, 1, 1], '2_norm'),
+ ('renorm', small_3d, lambda t: [2, -1, 1], '2_norm_neg_dim'),
+ ('renorm', small_3d, lambda t: [1.5, 1, 1], '1_5_norm'),
('repeat', small_2d, lambda t: [2, 2, 2],),
('size', new_t(1, 2, 3, 4), lambda t: [],),
('size', new_t(1, 2, 3, 4), lambda t: [1], 'dim'),
def test_scatter_gpu(self):
self._test_scatter(torch.randn(4, 4).cuda(), dim=0)
+ @skipIfRocm
def test_scatter_gpu_dim(self):
self._test_scatter(torch.randn(4, 4).cuda(), dim=1)
def test_gather_dim(self):
self._test_gather(1)
- @skipIfRocm
def test_from_sequence(self):
seq = [list(range(i * 4, i * 4 + 4)) for i in range(5)]
reference = torch.arange(0, 20).resize_(5, 4)
@unittest.skipIf(not PY3,
"spawn start method is not supported in Python 2, \
but we need it for creating another process with CUDA")
+ @skipIfRocm
def test_multinomial_invalid_probs_cuda(self):
test_method = TestCuda._test_multinomial_invalid_probs_cuda
self._spawn_method(test_method, torch.Tensor([1, -1, 1]))
torch.cuda.nvtx.mark("bar")
torch.cuda.nvtx.range_pop()
- @skipIfRocm
def test_randperm_cuda(self):
cuda = torch.device('cuda:0')