Skip to content

MNT Update dependencies (#118) #550

MNT Update dependencies (#118)

MNT Update dependencies (#118) #550

Workflow file for this run

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@2ccfc8c4bdf66db005d7681757b4145842944fb9#egg=scikit-learn -e .
# HACK: install a version of numba_dpex that is known to be stable on cpu and can
# run all unit tests on cpu.
# See https://github.com/IntelPython/numba-dpex/issues/1156
- name: Install a numba_dpex version that supports atomics on cpu
run: pip install /opt/numba_dpex/cpu-stable/numba_dpex*.whl
- name: Check device
run: python -c "import dpctl; dpctl.select_default_device().print_device_info()"
- name: Run sklearn_numba_dpex tests
run: pytest -v sklearn_numba_dpex/
# 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: 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