‹ Reports
The Dispatch

OSS Report: cupy/cupy


CuPy Development Focuses on ROCm and CUDA Compatibility Amid Active Community Engagement

CuPy, a Python library for GPU-accelerated computing, continues to enhance compatibility with ROCm and CUDA platforms, reflecting its commitment to high-performance computing.

Recent Activity

Recent issues and pull requests highlight a focus on improving compatibility with ROCm 6.2 (#8606) and addressing build issues with CUDA 12 (#8600). The team is also working on performance optimizations and API consistency with NumPy/SciPy. These efforts suggest a trajectory towards maintaining relevance in evolving hardware environments.

Development Team and Recent Activity

  1. Akifumi Imanishi (asi1024)

    • Extensive updates for SciPy compatibility.
    • Numerous fixes for special functions and sparse matrix tests.
  2. Kenichi Maehashi (kmaehashi)

    • Documentation updates for FFT.
    • Implemented guards for ROCm 6.x.
  3. Leo Fang (leofang)

    • Improved CUDA feature handling and core optimizations.
  4. Masayuki Takagi (takagi)

    • Fixed ROCm pointer attributes and memory types.
  5. EarlMilktea (S.S.)

    • Refactored core components, fixed core bugs.
  6. Ikko Eltociear Ashimine (eltociear)

    • Corrected FFT documentation typo.
  7. Jemiry Guo (jemiry)

    • Minor changes without open/merged PRs.
  8. Daniel Dakofler (dakofler)

    • Minor changes without open/merged PRs.

Of Note

The CuPy project is actively engaging with the community to address immediate concerns while planning long-term improvements, ensuring its continued utility in high-performance computing tasks.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 7 20 10 0 1
30 Days 33 28 71 1 1
90 Days 89 55 187 3 3
1 Year 263 156 751 5 7
All Time 2279 1755 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Akifumi Imanishi 2 10/18/0 27 74 930
Leo Fang 1 1/1/0 5 6 304
Kenichi Maehashi 2 10/6/0 25 21 292
S.S. 1 0/1/0 3 2 133
Masayuki Takagi 1 0/1/1 3 3 24
jemiry 1 0/0/0 1 1 4
Daniel 1 1/1/0 1 1 2
Ikko Eltociear Ashimine 1 1/1/0 1 1 2
Sosuke Hosokawa (so298) 0 1/0/0 0 0 0
Gregory Lee (grlee77) 0 0/1/0 0 0 0
None (Azusachan) 0 0/1/0 0 0 0
王宇逸 (Berrysoft) 0 0/1/0 0 0 0
None (jemiryguo) 0 1/1/1 0 0 0
CuPy/Chainer CI (chainer-ci) 0 11/12/0 0 0 0
Anton K2 (akochepasov) 0 1/0/1 0 0 0
None (gdaisukesuzuki) 0 0/0/1 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The CuPy GitHub repository currently has 524 open issues, with recent activity indicating a focus on enhancing compatibility with ROCm and addressing performance discrepancies. Notably, issues related to the support of various ROCm versions and CUDA functionalities have been prominent. There are also discussions around improving the handling of complex data types and refining the library's integration with NumPy and SciPy.

Several issues exhibit common themes, such as performance optimization, compatibility with newer CUDA versions, and enhancements for specific mathematical functions. The ongoing dialogue around these topics suggests a proactive approach to maintaining the library's relevance in high-performance computing.

Issue Details

Recent Issues

  1. Issue #8607: [RFC] Update set of supported ROCm versions in CuPy v13/v14

    • Priority: Low
    • Status: Open
    • Created: 4 days ago
    • Updated: 3 days ago
    • Discussion on updating supported ROCm versions, particularly dropping support for older versions.
  2. Issue #8606: Support ROCm 6.2

    • Priority: High
    • Status: Open
    • Created: 4 days ago
    • Updated: 3 days ago
    • Focus on implementing support for ROCm 6.2, including necessary tasks for CI and documentation updates.
  3. Issue #8604: Support loading cuSPARSELt from PyPI wheel

    • Priority: Medium
    • Status: Open
    • Created: 4 days ago
    • Updated: 3 days ago
    • Discussion regarding loading cuSPARSELt from PyPI wheels to enhance functionality.
  4. Issue #8602: expm precision inconsistency for multiples of pi

    • Priority: Low
    • Status: Open
    • Created: 4 days ago
    • A reported issue regarding precision inconsistencies in matrix exponentiation functions when using specific inputs.
  5. Issue #8600: Building CuPy against CUDA Python 12 fails

    • Priority: High
    • Status: Open
    • Created: 5 days ago
    • A critical build issue due to API changes in CUDA 12 that needs immediate attention.
  6. Issue #8598: #include "cutlass/gemm/device/gemm_universal_adapter.h" is causing the named symbol to not be found

    • Priority: Medium
    • Status: Open
    • A technical issue regarding C++ compilation errors related to Cutlass integration.
  7. Issue #8597: Support for NEP-13

    • Priority: Low
    • Status: Open
    • A feature request to support NEP-13 compliance for ufuncs on array-like objects.
  8. Issue #8594: Adopt cuda-python new module layout

    • Priority: Medium
    • Status: Open
    • Discussion on adapting to new layouts introduced in cuda-python.
  9. Issue #8590: cupyx.scipy.sparse.linalg.lsmr's argument is different from scipy's counterpart

    • Priority: Medium
    • Status: Open
    • Reported discrepancies in function arguments between CuPy and SciPy implementations.
  10. Issue #8588: Incorporate CCCL version in cache hash?

    • Priority: High
    • Status: Open
    • Proposal to improve cache management by incorporating CCCL versioning into the hash used for kernel caching.

Summary of Themes

  • There is a clear emphasis on ensuring compatibility with newer hardware and software standards (e.g., ROCm, CUDA).
  • Performance optimization remains a critical focus, particularly concerning matrix operations and data handling.
  • Issues related to discrepancies between CuPy and its NumPy/SciPy counterparts indicate ongoing efforts to maintain API consistency.
  • The community is actively discussing enhancements that could improve user experience and functionality, such as better error handling and support for additional data types.

This analysis highlights the active engagement within the CuPy community to address both immediate concerns and long-term improvements, ensuring that the library continues to meet the evolving needs of its users.

Report On: Fetch pull requests



Overview

The provided datasets contain a comprehensive list of pull requests (PRs) from the CuPy repository, including both open and closed PRs. These PRs cover a wide range of enhancements, bug fixes, and feature additions aimed at improving the functionality, performance, and usability of the CuPy library.

Summary of Pull Requests

Open Pull Requests

  • PR #8615: Adds support for CUDA Graphs conditional nodes in CuPy, enabling data-dependent dynamic control flow in CUDA Graphs.
  • PR #8613: Fixes HIP_VERSION unit detection to ensure compatibility with ROCm 6.0+.
  • PR #8612: Introduces self-hosted CI using GitHub Actions runners, replacing Jenkins CI for better integration and security.
  • PR #8583: Updates CuPy to support recent changes in setuptools, addressing issues with Windows builds using setuptools 74.0.0+.
  • PR #8544: Updates conda-build CUDA detection logic for Setuptools 72.2.0 compatibility.
  • PR #8538: Fixes illegal memory access in RNG methods when dtype is specified and not float32/float64.
  • PR #8531: Partially syncs CuPy with NumPy 2.0 compatibility, addressing various API changes and deprecations.

Closed Pull Requests

  • PR #8617: Backports documentation updates from main to v13 branch.
  • PR #8616: Corrects a typo in documentation related to FFT operations.
  • PR #8614: Proposes adding additional pyx files for native calls to cublas from third-party Cython native imports but is not merged due to concerns about API stability and maintainability.

Analysis of Pull Requests

The analysis of the pull requests reveals several key themes and areas of focus within the CuPy project:

  1. Enhancements and New Features:

    • There is a strong emphasis on enhancing existing functionalities and adding new features that leverage GPU capabilities more effectively. For instance, PR #8615 introduces support for CUDA Graphs conditional nodes, which can significantly improve performance for certain types of computations.
  2. Compatibility and Integration:

    • Many PRs focus on ensuring compatibility with other libraries and tools, such as ROCm, CUDA, setuptools, and conda. This is crucial for maintaining CuPy's usability across different platforms and environments (e.g., PR #8613, PR #8583).
  3. Testing and CI Improvements:

    • There is an ongoing effort to improve testing frameworks and continuous integration processes (e.g., PR #8612). This includes transitioning to self-hosted CI solutions that offer better security and integration with GitHub workflows.
  4. Bug Fixes and Stability:

    • A significant number of PRs address bug fixes that enhance the stability and reliability of the library (e.g., PR #8613, PR #8538). These fixes often involve intricate details related to hardware compatibility (e.g., different versions of ROCm or CUDA).
  5. Documentation and Community Contributions:

    • The project actively encourages community contributions, as seen in the diverse range of contributors involved in these PRs. Documentation updates are also a common theme, ensuring that users have access to accurate and helpful information (e.g., PR #8617, PR #8616).

Conclusion

The pull requests reflect CuPy's commitment to continuous improvement through community collaboration. The focus on enhancing performance, ensuring compatibility across platforms, improving testing frameworks, and maintaining comprehensive documentation underscores the project's dedication to providing a robust tool for GPU-accelerated computing in Python.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Activity

  1. Kenichi Maehashi (kmaehashi)

    • Recent Commits: 25 commits with 292 changes.
    • Key Contributions:
    • Updated documentation for FFT.
    • Implemented guards for ROCm 6.x and fixed related bugs.
    • Supported building CuPy with setuptools 74.
    • Merged multiple pull requests related to bug fixes and enhancements.
    • Collaborations: Worked closely with Akifumi Imanishi and Masayuki Takagi on various PRs.
  2. Ikko Eltociear Ashimine (eltociear)

    • Recent Commits: 1 commit with 2 changes.
    • Key Contributions: Corrected a typo in the FFT documentation.
    • Collaborations: Merged PRs with Kenichi Maehashi.
  3. Masayuki Takagi (takagi)

    • Recent Commits: 3 commits with 24 changes.
    • Key Contributions:
    • Fixed issues related to ROCm pointer attributes and memory types.
    • Contributed to the support for ROCm 6.x.
    • Collaborations: Worked alongside Kenichi Maehashi on ROCm-related PRs.
  4. Akifumi Imanishi (asi1024)

    • Recent Commits: 27 commits with 930 changes.
    • Key Contributions:
    • Extensive updates to tests for compatibility with SciPy versions.
    • Implemented various fixes for special functions and sparse matrix tests.
    • Merged numerous PRs addressing dtype rules and test adjustments.
    • Collaborations: Frequently collaborated with Kenichi Maehashi on backporting changes.
  5. EarlMilktea (S.S.)

    • Recent Commits: 3 commits with 133 changes.
    • Key Contributions: Refactored core components and fixed bugs related to core functionalities.
  6. Leo Fang (leofang)

    • Recent Commits: 5 commits with 304 changes.
    • Key Contributions:
    • Improved handling of CUDA-related features and optimized performance in core implementations.
  7. Jemiry Guo (jemiry)

    • Recent Commits: 1 commit with 4 changes; no open/merged PRs.
  8. Daniel Dakofler (dakofler)

    • Recent Commits: 1 commit with 2 changes; no open/merged PRs.

Patterns, Themes, and Conclusions

  • The team shows a strong focus on maintaining compatibility with recent versions of SciPy and CUDA, as evidenced by multiple commits addressing these areas.
  • There is significant collaboration among members, particularly between Kenichi Maehashi and Akifumi Imanishi, indicating a cohesive working dynamic within the team.
  • Documentation updates are being prioritized alongside code changes, reflecting a commitment to user experience and clarity in usage instructions.
  • The frequency of merges indicates an active development cycle, with many pull requests being addressed promptly, suggesting effective project management practices.
  • The team's efforts are directed towards enhancing functionality while ensuring stability across different platforms (CUDA/ROCm), which is critical for a library like CuPy that targets high-performance computing tasks.