test_tensor_uva.py 2.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
# 
# 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
# 
#     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 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
    def func_main(self):
24 25 26 27 28 29 30
        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())

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

36

S
Siming Dai 已提交
37
class TestUVATensorFromNumpy(unittest.TestCase):
38
    def func_uva_tensor_creation(self):
S
Siming Dai 已提交
39 40 41 42 43 44 45
        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)
46 47 48 49
                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 已提交
50 51 52
                self.assertTrue(tensor.place.is_gpu_place())
                self.assertTrue(np.allclose(tensor.numpy(), data))

53 54 55 56 57
    def test_uva_tensor_creation(self):
        with _test_eager_guard():
            self.func_uva_tensor_creation()
        self.func_uva_tensor_creation()

S
Siming Dai 已提交
58

59 60
if __name__ == "__main__":
    unittest.main()