How can I allocate a 64-bit buffer for cusolverDnZhegvd_bufferSize?

"On the A100 GPU, the 32-bit generalized eigenvalue solver algorithm cannot utilize the full memory. I need a 64-bit buffer. Is there a corresponding API?

Blockquote
checkCudaErrors(
cusolverDnZhegvd_bufferSize(
cusolverH,
itype,
jobz,
uplo,
m,
d_A2,
lda,
d_B2,
lda,
d_W,
&lwork)
);
Blockquote

How to allocate a 64-bit length type for lwork?

int64_t lwork;
checkCudaErrors(
cusolverDnZhegvd_bufferSize(
cusolverH,
itype,
jobz,
uplo,
m,
d_A2,
lda,
d_B2,
lda,
d_W,
reinterpret_cast<int*>(&lwork))
);

Can we solve the problem this way?

1 Like