test_tensor_uva.py 2.1 KB
Newer Older
1
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
2
#
3 4 5
# Licensed 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
6
#
7
#     http://www.apache.org/licenses/LICENSE-2.0
8
#
9 10 11 12 13 14 15 16 17
# 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 paddle
import unittest
import numpy as np
18 19
from paddle.fluid import core
from paddle.fluid.framework import _test_eager_guard, _in_legacy_dygraph
20 21 22


class TestTensorCopyFrom(unittest.TestCase):
23

24
    def func_main(self):
25 26 27 28 29 30 31
        if paddle.fluid.core.is_compiled_with_cuda():
            place = paddle.CPUPlace()
            np_value = np.random.random(size=[10, 30]).astype('float32')
            tensor = paddle.to_tensor(np_value, place=place)
            tensor._uva()
            self.assertTrue(tensor.place.is_gpu_place())

32 33 34 35 36
    def test_main(self):
        with _test_eager_guard():
            self.func_main()
        self.func_main()

37

S
Siming Dai 已提交
38
class TestUVATensorFromNumpy(unittest.TestCase):
39

40
    def func_uva_tensor_creation(self):
S
Siming Dai 已提交
41 42 43 44 45 46 47
        if paddle.fluid.core.is_compiled_with_cuda():
            dtype_list = [
                "int32", "int64", "float32", "float64", "float16", "int8",
                "int16", "bool"
            ]
            for dtype in dtype_list:
                data = np.random.randint(10, size=[4, 5]).astype(dtype)
48 49 50 51
                if _in_legacy_dygraph():
                    tensor = paddle.fluid.core.to_uva_tensor(data, 0)
                else:
                    tensor = core.eager.to_uva_tensor(data, 0)
S
Siming Dai 已提交
52 53 54
                self.assertTrue(tensor.place.is_gpu_place())
                self.assertTrue(np.allclose(tensor.numpy(), data))

55 56 57 58 59
    def test_uva_tensor_creation(self):
        with _test_eager_guard():
            self.func_uva_tensor_creation()
        self.func_uva_tensor_creation()

S
Siming Dai 已提交
60

61 62
if __name__ == "__main__":
    unittest.main()