Skip to content

Conversation

@oleksandr-pavlyk
Copy link
Contributor

@oleksandr-pavlyk oleksandr-pavlyk commented Mar 22, 2023

This PR rewrites build system of dpnp to use scikit-build and cmake on all supported platforms.

CMake scripts leverage cmake integration in oneAPI DPC++, oneAPI MKL, oneAPI TBB and oneAPI DPL.

The oneAPI DPL conda packages are not yet packaging their cmake integration scripts, so a remaining to-do list is to vendor that script into dpnp/backend/cmake/ and make sure that it can be found.

  • Have you provided a meaningful PR description?
  • Have you added a test, reproducer or referred to issue with a reproducer?
  • Have you tested your changes locally for CPU and GPU devices?
  • Have you made sure that new changes do not introduce compiler warnings?
  • If this PR is a work in progress, are you filing the PR as a draft?

To build dpnp, one one does

```bash
CC=icx CXX=icpx python setup.py develop -G Ninja -- -DDPCTL_MODULE_PATH=$(python -m dpctl --cmakedir)
```

or on Windows

```cmd
python setup.py develop -G Ninja -- -DDPCTL_MODULE_PATH=<path> -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx
```

where the `<path>` is the output of `python -m dpctl --cmakedir`.
…dpnp_backend_c in target_link_libraries for CTest
@oleksandr-pavlyk
Copy link
Contributor Author

oleksandr-pavlyk commented Mar 23, 2023

The way to initiate the build is

CC=icx CXX=icpx DPL_ROOT_HINT=$DPL_ROOT python setup.py develop -G Ninja -- \
    -DDPCTL_MODULE_PATH=$(python -m dpctl --cmakedir) \
    -DCMAKE_VERBOSE_MAKEFILE=ON

vlad-perevezentsev and others added 28 commits April 4, 2023 20:36
Use `sys.executable` instead of `"python"` in `check_output` call
Adds a new github CI Action to generate coverage and upload to coveralls
@oleksandr-pavlyk oleksandr-pavlyk merged commit 12e791e into master Apr 8, 2023
@oleksandr-pavlyk oleksandr-pavlyk deleted the use-skbuild-and-cmake branch April 8, 2023 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants