Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit 9fc0384

Browse files
tsochapostrational
authored andcommitted
Add support for intel gpu backend (#379)
1 parent 6ca3cba commit 9fc0384

File tree

6 files changed

+53
-1
lines changed

6 files changed

+53
-1
lines changed

conftest.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
def pytest_addoption(parser):
2222
parser.addoption('--backend', default='CPU',
23-
choices=['INTERPRETER', 'CPU', 'GPU', 'NNP', 'PlaidML'],
23+
choices=['INTERPRETER', 'CPU', 'GPU', 'NNP', 'PlaidML', 'INTELGPU'],
2424
help='Select from available backends')
2525

2626

@@ -37,6 +37,7 @@ def pytest_collection_modifyitems(config, items):
3737
nnp_skip = pytest.mark.skip(reason='Skipping test on the NNP backend.')
3838
interpreter_skip = pytest.mark.skip(reason='Skipping test on the INTERPRETER backend.')
3939
plaidml_skip = pytest.mark.skip(reason='Skipping test on the PlaidML backend.')
40+
igpu_skip = pytest.mark.skip(reason='Skipping test on the INTELGPU backend.')
4041

4142
for item in items:
4243
if backend_name == 'GPU' and 'skip_on_gpu' in item.keywords:
@@ -49,3 +50,5 @@ def pytest_collection_modifyitems(config, items):
4950
item.add_marker(interpreter_skip)
5051
if backend_name == 'PlaidML' and 'skip_on_plaidml' in item.keywords:
5152
item.add_marker(plaidml_skip)
53+
if backend_name == 'INTELGPU' and 'skip_on_intelgpu' in item.keywords:
54+
item.add_marker(igpu_skip)

ngraph_onnx/onnx_importer/backend.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class NgraphBackend(Backend):
4949
# (<ngraph_backend_name>, <onnx_device_name>)
5050
('CPU', 'CPU'),
5151
('GPU', 'CUDA'),
52+
('INTELGPU', 'CPU'),
5253
('INTERPRETER', 'CPU'),
5354
('ARGON', 'CPU'),
5455
('NNP', 'CPU'),

tests/test_backend.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,25 @@
171171
pytest.mark.xfail(OnnxBackendNodeModelTest.test_dynamic_slice_end_out_of_bounds_cpu)
172172
pytest.mark.xfail(OnnxBackendNodeModelTest.test_dynamic_slice_neg_cpu)
173173
pytest.mark.xfail(OnnxBackendNodeModelTest.test_dynamic_slice_start_out_of_bounds_cpu)
174+
175+
# Tests which fail on the INTELGPU backend
176+
if selected_backend_name == 'INTELGPU':
177+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_dynamic_slice_start_out_of_bounds_cpu)
178+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_edge_pad_cpu)
179+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_erf_cpu)
180+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_gather_0_cpu)
181+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_gather_1_cpu)
182+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_gemm_broadcast_cpu)
183+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_hardmax_axis_0_cpu)
184+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_hardmax_axis_1_cpu)
185+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_hardmax_axis_2_cpu)
186+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_hardmax_default_axis_cpu)
187+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_hardmax_example_cpu)
188+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_hardmax_one_hot_cpu)
189+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_maxpool_2d_same_upper_cpu)
190+
pytest.mark.xfail(OnnxBackendNodeModelTest.test_reflect_pad_cpu)
191+
pytest.mark.xfail(OnnxBackendPyTorchConvertedModelTest.test_Embedding_cpu)
192+
pytest.mark.xfail(OnnxBackendPyTorchConvertedModelTest.test_Embedding_sparse_cpu)
193+
pytest.mark.xfail(OnnxBackendPyTorchConvertedModelTest.test_ReflectionPad2d_cpu)
194+
pytest.mark.xfail(OnnxBackendPyTorchConvertedModelTest.test_ReplicationPad2d_cpu)
195+
pytest.mark.xfail(OnnxBackendPyTorchOperatorModelTest.test_operator_pad_cpu)

tests/test_ngraph_backend.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def _get_input_data(*inputs):
5959
@pytest.mark.skip_on_nnp
6060
@pytest.mark.skip_on_gpu
6161
@pytest.mark.skip_on_cpu
62+
@pytest.mark.skip_on_intelgpu
6263
def test_supports_ngraph_device_interpreter():
6364
assert NgraphBackend.supports_ngraph_device('INTERPRETER')
6465

@@ -72,13 +73,15 @@ def test_supports_ngraph_device_cpu():
7273

7374
@pytest.mark.skip_on_cpu
7475
@pytest.mark.skip_on_gpu
76+
@pytest.mark.skip_on_intelgpu
7577
@pytest.mark.skip_on_interpreter
7678
def test_supports_ngraph_device_nnp():
7779
assert NgraphBackend.supports_ngraph_device('NNP')
7880

7981

8082
@pytest.mark.skip_on_nnp
8183
@pytest.mark.skip_on_cpu
84+
@pytest.mark.skip_on_intelgpu
8285
@pytest.mark.skip_on_interpreter
8386
def test_supports_ngraph_device_gpu():
8487
assert NgraphBackend.supports_ngraph_device('GPU')

tests/test_ops_unary.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ def test_reciprocal(input_data):
158158
assert np.allclose(ng_results, [expected_output])
159159

160160

161+
@pytest.mark.skip_on_intelgpu
161162
@pytest.mark.parametrize('axis, dim1, dim2', [
162163
(0, 1, 60),
163164
(1, 3, 20),
@@ -175,6 +176,7 @@ def hardmax_2d(data):
175176
assert np.allclose(ng_results, [expected])
176177

177178

179+
@pytest.mark.skip_on_intelgpu
178180
def test_hardmax_special_cases():
179181
def hardmax_2d(data):
180182
return np.eye(data.shape[1], dtype=data.dtype)[np.argmax(data, axis=1)]

tests/test_zoo_models.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,5 +431,26 @@
431431
backend_test.exclude('test_mnist_opset1')
432432
backend_test.exclude('test_tiny_yolov2_opset1')
433433

434+
# Tests which fail on the INTELGPU backend
435+
if tests.utils.BACKEND_NAME == 'INTELGPU':
436+
pytest.mark.xfail(test_cases.test_arcface_lresnet100e_opset8_cpu)
437+
pytest.mark.xfail(test_cases.test_densenet121_opset3_cpu)
438+
pytest.mark.xfail(test_cases.test_densenet121_opset6_cpu)
439+
pytest.mark.xfail(test_cases.test_densenet121_opset7_cpu)
440+
pytest.mark.xfail(test_cases.test_densenet121_opset8_cpu)
441+
pytest.mark.xfail(test_cases.test_densenet121_opset9_cpu)
442+
pytest.mark.xfail(test_cases.test_inception_v2_opset3_cpu)
443+
pytest.mark.xfail(test_cases.test_inception_v2_opset6_cpu)
444+
pytest.mark.xfail(test_cases.test_inception_v2_opset7_cpu)
445+
pytest.mark.xfail(test_cases.test_inception_v2_opset8_cpu)
446+
pytest.mark.xfail(test_cases.test_inception_v2_opset9_cpu)
447+
pytest.mark.xfail(test_cases.test_resnet50_opset3_cpu)
448+
pytest.mark.xfail(test_cases.test_resnet50_opset6_cpu)
449+
pytest.mark.xfail(test_cases.test_resnet50_opset7_cpu)
450+
pytest.mark.xfail(test_cases.test_resnet50_opset8_cpu)
451+
pytest.mark.xfail(test_cases.test_resnet50_opset9_cpu)
452+
pytest.mark.xfail(test_cases.test_vgg19_opset8_cpu)
453+
pytest.mark.xfail(test_cases.test_vgg19_opset9_cpu)
454+
434455
del test_cases
435456
globals().update(backend_test.enable_report().test_cases)

0 commit comments

Comments
 (0)