-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add paddle.device.cuda.get_device_properties (#35661)
* Initial Commit * add unittest and add error information * modify doc * fix some error * fix some word * fix bug cudaDeviceProp* and modify error explanation * fix cudaDeviceProp* error and unnitest samples * fix hip error and PADDLE_WITH_HIP * update style * fix error is_compiled_with_cuda * fix paddle.device.cuda.get_device_properties * fix error for multi thread safe * update style * merge conflict * modify after mentor review * update style * delete word * fix unittest error for windows * support string input and modify some code * modify doc to support string input * fix error for express information * fix error for express information * fix unnitest for windows * fix device.startswith('gpu:') * format error and doc * fix after review * format code * fix error for doc compile * fix error for doc compile * fix error for doc compile * fix error for doc compile * fix error for doc compile * fix py2 error * fix wrong words and doc * fix _gpuDeviceProperties
- Loading branch information
1 parent
6f18b04
commit 4cbed9e
Showing
6 changed files
with
211 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
python/paddle/fluid/tests/unittests/test_get_device_properties.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# Copyright (c) 2021 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 | ||
from paddle.fluid import core | ||
from paddle.device.cuda import device_count, get_device_properties | ||
|
||
|
||
class TestGetDeviceProperties(unittest.TestCase): | ||
def test_get_device_properties_default(self): | ||
if core.is_compiled_with_cuda(): | ||
props = get_device_properties() | ||
self.assertIsNotNone(props) | ||
|
||
def test_get_device_properties_str(self): | ||
if core.is_compiled_with_cuda(): | ||
props = get_device_properties('gpu:0') | ||
self.assertIsNotNone(props) | ||
|
||
def test_get_device_properties_int(self): | ||
if core.is_compiled_with_cuda(): | ||
gpu_num = device_count() | ||
for i in range(gpu_num): | ||
props = get_device_properties(i) | ||
self.assertIsNotNone(props) | ||
|
||
def test_get_device_properties_CUDAPlace(self): | ||
if core.is_compiled_with_cuda(): | ||
device = core.CUDAPlace(0) | ||
props = get_device_properties(device) | ||
self.assertIsNotNone(props) | ||
|
||
|
||
class TestGetDevicePropertiesError(unittest.TestCase): | ||
def test_error_api(self): | ||
if core.is_compiled_with_cuda(): | ||
|
||
def test_device_indexError_error(): | ||
device_error = device_count() + 1 | ||
props = get_device_properties(device_error) | ||
|
||
self.assertRaises(IndexError, test_device_indexError_error) | ||
|
||
def test_device_value_error1(): | ||
device_error = 'gpu1' | ||
props = get_device_properties(device_error) | ||
|
||
self.assertRaises(ValueError, test_device_value_error1) | ||
|
||
def test_device_value_error2(): | ||
device_error = float(device_count()) | ||
props = get_device_properties(device_error) | ||
|
||
self.assertRaises(ValueError, test_device_value_error2) | ||
|
||
|
||
if __name__ == "__main__": | ||
unittest.main() |