Add support for cuBLASLt functions used by llm.c#512
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR adds support for cuBLASLt functions used by llm.c by implementing comprehensive cuBLAS Lite functionality. It expands the ZLUDA cuBLAS Lite implementation from basic handle management to full matrix multiplication operations including descriptors, preferences, layouts, and algorithm heuristics.
- Implements core cuBLASLt functions for matrix operations (matmul, descriptors, preferences, layouts)
- Adds comprehensive type conversions between CUDA and HIP data types and enums
- Integrates hipblaslt-sys dependency for HIP BLAS Lite backend functionality
Reviewed Changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| zluda_common/src/lib.rs | Adds type conversions for cuBLASLt data types and enums to HIP equivalents |
| zluda_common/Cargo.toml | Adds hipblaslt-sys dependency |
| zluda_blaslt/src/lib.rs | Expands implemented function list to include matmul operations |
| zluda_blaslt/src/impl.rs | Implements cuBLASLt function handlers with HIP backend calls |
| zluda_blaslt/Cargo.toml | Adds hip_runtime-sys and hipblaslt-sys dependencies |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
|
||
| from_cuda_object!(Handle); | ||
|
|
||
| pub struct MatmulDesc { |
There was a problem hiding this comment.
This whole wrapping of hipblasLtMatmulDesc_t, hipblasLtMatmulPreference_t and hipblasLtMatrixLayout_t seems unnecessary to me, if we wrapped those types with some extra data, but as it is now it's better to map them 1:1
There was a problem hiding this comment.
Makes sense, done.
Depends on #510