Skip to content

Commit a6beb59

Browse files
authored
enhance gpu ci and test (PaddlePaddle#257)
1 parent ef49b86 commit a6beb59

File tree

8 files changed

+52
-36
lines changed

8 files changed

+52
-36
lines changed

build.sh

+9-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ workspace=$PWD
55
build_dir=$workspace/build
66

77
JOBS=8
8-
# To enable Cuda backend, set(WITH_CUDA ON)
8+
99
cuda_config=OFF
1010

11+
function gpu_on {
12+
cuda_config=ON
13+
}
14+
1115
function check_style {
1216
export PATH=/usr/bin:$PATH
1317
#pre-commit install
@@ -116,6 +120,10 @@ function main {
116120
# Parse command line.
117121
for i in "$@"; do
118122
case $i in
123+
gpu_on)
124+
gpu_on
125+
shift
126+
;;
119127
check_style)
120128
check_style
121129
shift

cinn/pybind/common.cc

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ void BindTarget(py::module *m) {
3737
.def("defined", &Target::defined)
3838
.def("runtime_arch", &Target::runtime_arch);
3939

40+
m->def("DefaultHostTarget", &common::DefaultHostTarget).def("DefaultNVGPUTarget", &common::DefaultNVGPUTarget);
41+
4042
py::enum_<Target::OS> os(target, "OS");
4143
os.value("Unk", Target::OS::Unk).value("Linux", Target::OS::Linux).value("Windows", Target::OS::Windows);
4244

python/CMakeLists.txt

+5-4
Original file line numberDiff line numberDiff line change
@@ -57,24 +57,25 @@ ADD_TEST(NAME test_cinn_frontend
5757
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_frontend.py
5858
${CMAKE_BINARY_DIR}/thirds/naive_mul_model
5959
${CMAKE_BINARY_DIR}/thirds/multi_fc_model
60+
"${WITH_CUDA}"
6061
)
6162

6263
ADD_TEST(NAME test_cinn_fake_resnet
6364
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH}
64-
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_resnet.py "${CMAKE_BINARY_DIR}/thirds/resnet_model"
65+
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_resnet.py "${CMAKE_BINARY_DIR}/thirds/resnet_model" "${WITH_CUDA}"
6566
)
6667

6768
ADD_TEST(NAME test_cinn_real_resnet18
6869
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH}
69-
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_resnet18.py "${CMAKE_BINARY_DIR}/thirds/ResNet18"
70+
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_resnet18.py "${CMAKE_BINARY_DIR}/thirds/ResNet18" "${WITH_CUDA}"
7071
)
7172

7273
ADD_TEST(NAME test_cinn_real_mobilenetV2
7374
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH}
74-
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_mobilenetv2.py "${CMAKE_BINARY_DIR}/thirds/MobileNetV2"
75+
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_mobilenetv2.py "${CMAKE_BINARY_DIR}/thirds/MobileNetV2" "${WITH_CUDA}"
7576
)
7677

7778
ADD_TEST(NAME test_cinn_real_efficientnet
7879
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH}
79-
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_efficientnet.py "${CMAKE_BINARY_DIR}/thirds/EfficientNet"
80+
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_efficientnet.py "${CMAKE_BINARY_DIR}/thirds/EfficientNet" "${WITH_CUDA}"
8081
)

python/tests/test_efficientnet.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@
1414
import paddle.fluid as fluid
1515
import sys
1616

17+
enable_gpu = sys.argv.pop()
1718
model_dir = sys.argv.pop()
1819

1920

2021
class TestLoadEfficientNetModel(unittest.TestCase):
2122
def setUp(self):
22-
self.target = Target()
23-
self.target.arch = Target.Arch.X86
24-
self.target.bits = Target.Bit.k64
25-
self.target.os = Target.OS.Linux
23+
if enable_gpu == "ON":
24+
self.target = DefaultNVGPUTarget()
25+
else:
26+
self.target = DefaultHostTarget()
2627
self.model_dir = model_dir
2728
self.x_shape = [2, 3, 224, 224]
2829
self.target_tensor = 'save_infer_model/scale_0'

python/tests/test_frontend.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,18 @@
1414
import paddle.fluid as fluid
1515
import sys
1616

17-
assert len(sys.argv) == 1 + 2 # model count
17+
assert len(sys.argv) == 1 + 2 + 1 # model and enable_gpu count
18+
enable_gpu = sys.argv.pop()
1819
multi_fc_model_dir = sys.argv.pop()
1920
naive_model_dir = sys.argv.pop()
2021

2122

2223
class TestFrontend(unittest.TestCase):
2324
def setUp(self):
24-
self.target = Target()
25-
self.target.arch = Target.Arch.X86
26-
self.target.bits = Target.Bit.k64
27-
self.target.os = Target.OS.Linux
25+
if enable_gpu == "ON":
26+
self.target = DefaultNVGPUTarget()
27+
else:
28+
self.target = DefaultHostTarget()
2829

2930
def paddle_verify(self, result):
3031
a = fluid.data(name='A', shape=[2, 24, 56, 56], dtype='float32')
@@ -95,10 +96,10 @@ def test_basic(self):
9596

9697
class TestLoadPaddleModel_FC(unittest.TestCase):
9798
def setUp(self):
98-
self.target = Target()
99-
self.target.arch = Target.Arch.X86
100-
self.target.bits = Target.Bit.k64
101-
self.target.os = Target.OS.Linux
99+
if enable_gpu == "ON":
100+
self.target = DefaultNVGPUTarget()
101+
else:
102+
self.target = DefaultHostTarget()
102103

103104
self.model_dir = naive_model_dir
104105

@@ -137,10 +138,10 @@ def test_model(self):
137138

138139
class TestLoadPaddleModel_MultiFC(unittest.TestCase):
139140
def setUp(self):
140-
self.target = Target()
141-
self.target.arch = Target.Arch.X86
142-
self.target.bits = Target.Bit.k64
143-
self.target.os = Target.OS.Linux
141+
if enable_gpu == "ON":
142+
self.target = DefaultNVGPUTarget()
143+
else:
144+
self.target = DefaultHostTarget()
144145

145146
self.model_dir = multi_fc_model_dir
146147

python/tests/test_mobilenetv2.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@
1414
import paddle.fluid as fluid
1515
import sys
1616

17+
enable_gpu = sys.argv.pop()
1718
model_dir = sys.argv.pop()
1819

1920

2021
class TestLoadResnetModel(unittest.TestCase):
2122
def setUp(self):
22-
self.target = Target()
23-
self.target.arch = Target.Arch.X86
24-
self.target.bits = Target.Bit.k64
25-
self.target.os = Target.OS.Linux
23+
if enable_gpu == "ON":
24+
self.target = DefaultNVGPUTarget()
25+
else:
26+
self.target = DefaultHostTarget()
2627
self.model_dir = model_dir
2728
self.x_shape = [2, 3, 224, 224]
2829
self.target_tensor = 'save_infer_model/scale_0'

python/tests/test_resnet.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@
1414
import paddle.fluid as fluid
1515
import sys
1616

17+
enable_gpu = sys.argv.pop()
1718
model_dir = sys.argv.pop()
1819

1920

2021
class TestLoadResnetModel(unittest.TestCase):
2122
def setUp(self):
22-
self.target = Target()
23-
self.target.arch = Target.Arch.X86
24-
self.target.bits = Target.Bit.k64
25-
self.target.os = Target.OS.Linux
23+
if enable_gpu == "ON":
24+
self.target = DefaultNVGPUTarget()
25+
else:
26+
self.target = DefaultHostTarget()
2627

2728
self.model_dir = model_dir
2829

python/tests/test_resnet18.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,18 @@
1414
import paddle.fluid as fluid
1515
import sys
1616

17+
enable_gpu = sys.argv.pop()
1718
model_dir = sys.argv.pop()
19+
print("enable_gpu is : ", enable_gpu)
20+
print("model_dir is : ", model_dir)
1821

1922

2023
class TestLoadResnetModel(unittest.TestCase):
2124
def setUp(self):
22-
self.target = Target()
23-
self.target.arch = Target.Arch.X86
24-
self.target.bits = Target.Bit.k64
25-
self.target.os = Target.OS.Linux
25+
if enable_gpu == "ON":
26+
self.target = DefaultNVGPUTarget()
27+
else:
28+
self.target = DefaultHostTarget()
2629
self.model_dir = model_dir
2730
self.x_shape = [2, 3, 224, 224]
2831
self.target_tensor = 'save_infer_model/scale_0'
@@ -71,8 +74,6 @@ def apply_test(self):
7174

7275
def test_model(self):
7376
self.apply_test()
74-
#self.target.arch = Target.Arch.NVGPU
75-
#self.apply_test()
7677

7778

7879
if __name__ == "__main__":

0 commit comments

Comments
 (0)