1
数学库
提问帖
有回复
安装slate时遇到的问题
2026-09-24 10:43:19
62
在DCU上适配slate的时候遇到了不兼容问题 我们在 DTK 25.04 环境下使用 GPUfusion 的 CUDA/cuSOLVER 兼容接口运行 SLATE。GEMM 测试正常,但 GPU Cholesky 分解(POTRF)报错: ``` terminate called after throwing an instance of 'blas::Error' what(): host_work_size != 0, in function potrf ``` 调用链为 SLATE → LAPACK++ GPU potrf → cusolverDnXpotrf_bufferSize → hipsolverDnXpotrf_bufferSize 抛出错误的源码部分会检测CPU工作区大小 ``` // query for workspace size size_t dev_work_size, host_work_size; potrf_work_size_bytes( uplo, n, dA, ldda, &dev_work_size, &host_work_size, queue ); // alloc workspace in queue queue.work_ensure_size< char >( dev_work_size ); // syncs if needed void* dev_work = queue.work(); blas_error_if( host_work_size != 0 ); // launch kernel #if CUSOLVER_VERSION >= 11000 auto params = queue.solver_params(); blas_dev_call( cusolverDnXpotrf( solver, params, uplo_, n, CudaTraits::datatype, dA, ldda, CudaTraits::datatype, dev_work, dev_work_size, nullptr, 0, // host work assumed 0 dev_info )); ``` 想问一下 `cusolverDnXpotrf`或者hipsolverDnXpotrf在这一块的具体实现?是否有分配GPU工作区? 以及解决的建议?目前不太敢直接删除,如果 DTK 确实需要 CPU 工作区,可能出现参数错误、空指针访问、崩溃或错误结果。
全部评论(1)
只看楼主
潜水1号
1楼
source /opt/dtk/cuda/env.sh  再重新编译一下试试 
9/29
没有更多内容了
--
楼主
Level.3
0 帖子
楼主热帖
暂无数据