arrayfire / arrayfire/arrayfire

Dynamic load cusolver

Ouverte
#2,672 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
build feature question
Langage dominant
C++
Étoiles
4.9k
Forks
555
Merge moyen
1 h 24 min
PR mergées (30 j)
1

Description

The cusolver library is pretty big (150MB) and a hard dep of libafcuda:

$ LD_LIBRARY_PATH=. ldd libafcuda.so
linux-vdso.so.1 => (0x00007ffd67883000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0f70e6c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0f70c68000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f0f70a60000)
libnvrtc.so.10.0 => ./libnvrtc.so.10.0 (0x00007f0f6f444000)
libcublas.so.10.0 => ./libcublas.so.10.0 (0x00007f0f6aeae000)
libcufft.so.10.0 => ./libcufft.so.10.0 (0x00007f0f649fa000)
libcusolver.so.10.0 => ./libcusolver.so.10.0 (0x00007f0f5c313000)
libcusparse.so.10.0 => ./libcusparse.so.10.0 (0x00007f0f588ab000)
libcuda.so.1 => /usr/lib/x86_64-linux-gnu/libcuda.so.1 (0x00007f0f57754000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f0f57532000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0f57229000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0f57013000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0f56c49000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0fa02e4000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f0f568c7000)
libnvidia-fatbinaryloader.so.418.56 => /usr/lib/nvidia-418/libnvidia-fatbinaryloader.so.418.56 (0x00007f0f56679000

Would there be a way for libafcuda to dynload cusolver only if used just like cudnn ?
Kind

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start by tracing how libafcuda.so currently links to libcusolver.so.10.0 and compare that dependency with the existing cudnn dynamic-loading approach mentioned in the issue. Done should mean cusolver is loaded only when solver functionality is used, while ldd no longer reports it as a hard dependency and solver use remains functional.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp
Domaine
hpc
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.