Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds support for the MAGMA linear algebra library to the Iluvatar GPU backend in PaddlePaddle, enabling efficient computation of eigenvalues and eigenvectors via a new eig kernel. It introduces MAGMA as a dependency, integrates its usage into the build system, implements the CUDA eig kernel leveraging MAGMA, and provides comprehensive unit tests for the new functionality. Additionally, it enhances the runtime context to support solver handles required for MAGMA operations.
MAGMA integration and eig kernel implementation:
external/magma.cmaketo download, verify, and integrate the MAGMA library as a third-party dependency for Linux platforms. This includes logic for handling downloads, MD5 verification, and linking the shared library. (backends/iluvatar_gpu/cmake/external/magma.cmake)backends/iluvatar_gpu/CMakeLists.txtto include MAGMA in the build process, add its source and dynload files, and link the MAGMA library to the backend target. (backends/iluvatar_gpu/CMakeLists.txt) [1] [2] [3]backends/iluvatar_gpu/kernels/cuda_kernels/eig_kernel.cu)Runtime context enhancements:
cusolverDnHandle_t), including thread-safe initialization and retrieval functions, to support MAGMA operations. (backends/iluvatar_gpu/runtime/iluvatar_context.h) [1] [2]Testing and validation:
backends/iluvatar_gpu/tests/unittests/test_eig_op_iluvatar.py)Submodule update:
Paddlesubmodule pointer to a newer commit, likely to synchronize with dependencies required for MAGMA integration. (Paddle)