-
Notifications
You must be signed in to change notification settings - Fork 4
52 lines (44 loc) · 2.64 KB
/
run_tests.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
name: Run tests
on:
pull_request:
push: { branches: main }
jobs:
run-test-suite:
name: Run test suite
runs-on: ubuntu-latest
container: jjerphan/numba_dpex_dev:latest
# TODO: setup runners with a compatible gpu and activate this option:
# options: --device=/dev/dri # enable gpu passthrough
steps:
- name: Checkout code
uses: actions/checkout@v3
# Use a pinned commit from the `feature/engine-api` branch at
# https://github.com/scikit-learn/scikit-learn.git to enable smooth
# synchronization with the development of this branch.
# Development tracker: https://github.com/scikit-learn/scikit-learn/pull/25535/
# TODO: Remove this step when the plugin API is officially released
- name: Install pytest, sklearn branch "feature/engine-api", and sklearn-numba-dpex
run: pip install pytest git+https://github.com/scikit-learn/scikit-learn.git@7d52073b15ee920c6f49208c777e7ce7663ff74b#egg=scikit-learn -e .
- name: Check device
run: python -c "import dpctl; dpctl.select_default_device().print_device_info()"
# TODO: once compiler optimization flags are properly balanced in `numba_dpex`,
# remove the environment variable `NUMBA_DPEX_OPT=0` that is currently required
# for succeeding on CPU some of the tests. So far no issue on GPUs has been
# observed.
# More information at https://github.com/IntelPython/numba-dpex/issues/1106
- name: Run sklearn_numba_dpex tests
run: pytest -v sklearn_numba_dpex/ -k "not test_kmeans_predict_centers"
- name: Run sklearn_numba_dpex tests
run: NUMBA_DPEX_OPT=0 pytest -v sklearn_numba_dpex/ -k test_kmeans_predict_centers
# TODO: run those tests in a separate pipeline
# NB: `sklearn_numba_dpex` engine set the estimators to output arrays of type
# `dpctl.tensor.usm_ndarray` and store fitted attributes with this same type.
# This behavior is not compatible with sklearn unit tests, that expects numpy
# arrays or at least arrays that would closely mimic the NumPy Python API. To
# keep compatibility with sklearn unit tests the engine must be set to a
# different behavior where its methods are wrapped in data conversion steps so
# that fitted attributes and outputs are numpy arrays. Currently this behavior is
# activated when the environment variable SKLEARN_NUMBA_DPEX_TESTING_MODE is set
# to 1.
- name: Run sklearn test suites with sklearn_numba_dpex engines
run: NUMBA_DPEX_OPT=0 SKLEARN_RUN_FLOAT32_TESTS=1 SKLEARN_NUMBA_DPEX_TESTING_MODE=1 pytest -v --sklearn-engine-provider sklearn_numba_dpex --pyargs sklearn.cluster.tests.test_k_means