Skip to content

GSoC 2021 Project Ideas

Masayuki Takagi edited this page Apr 6, 2021 · 7 revisions

GSoC 2021 Project Ideas

CuPy coverage of NumPy/SciPy functions

Description

CuPy covers many of the functions that are provided by NumPy/SciPy, but not all of them. Review the functions that CuPy doesn't cover yet, and implement them in CuPy to use the full speed of the GPU.

Mentors

@takagi

Difficulty and Requirements

Difficulty: Easy to Medium

Requirements:

  • Python 3
  • Experience in NumPy/SciPy API
  • Understanding of the CUDA semantics (e.g., use of CUDA Toolkit APIs, host/device synchronization)

Capacity

We will have a student approved for GSoC. It's because of GSoC's scheme where students are paid stipends. Of course, if you are interested in contributing to opensources (as opposed to GSoC itsef), it's highly welcome. We can discuss your idea deeper than usual with your proposal.

First Steps

Look at the NumPy/SciPy functions that are not yet implemented in CuPy, and prioritize that list by which functions you think will be most helpful and used.

Methodology

We expect you to implement the routines in a way that they take advantage of the GPU compute model rather than just copy-pasting NumPy source code. Routines have to be properly documented and with the required tests. Furthermore, we also request to do a performance comparison with NumPy using cupyx.time.repeat to avoid merging poorly-performant routines. We expect quality over quantity.

Why this is cool

Your contribution will help everyone in the Python/CUDA ecosystem as CuPy being one of the important building blocks for major projects like [NVIDIA RAPIDS], [spaCy], and more. You will also get in-depth knowledge of NumPy/SciPy functionality and specifications.

Note for registration

On the student registration form, please prefix your title with CuPy: XXXXXXXXXXXX and choose N/A for NumFOCUS proposal tag, which has only ten slots and CuPy is not listed on it. It's there just for filtering proposals easier.