ó
    „ñ:iu  ã                   óâ   • S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	J
r
  SSKJr  \R                  S:X  a  SrS	rO\R                  S
:X  a  SrSrOSrSrS rS rSS jrS rS rSS jrS rg)a  CUDA Toolkit libraries lookup utilities.

CUDA Toolkit libraries can be available via either:

- the `cuda-nvcc` and `cuda-nvrtc` conda packages for CUDA 12,
- the `cudatoolkit` conda package for CUDA 11,
- a user supplied location from CUDA_HOME,
- a system wide location,
- package-specific locations (e.g. the Debian NVIDIA packages),
- or can be discovered by the system loader.
é    N)Úfind_lib)Úget_cuda_paths)Úlocate_driver_and_loaderÚload_driver)ÚCudaSupportErrorÚwin32z%s.dllz%s.libÚdarwinzlib%s.dylibzlib%s.azlib%s.soc                  ó8   • [        5       n U S   R                  nU$ )NÚ	libdevice)r   Úinfo)ÚdÚpathss     ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/cuda/cudadrv/libs.pyÚget_libdevicer   "   s   € ÜÓ€AØˆk‰N×Ñ€EØ€Ló    c                  ó€   • [        [        5       S5       n U R                  5       sS S S 5        $ ! , (       d  f       g = f)NÚrb)Úopenr   Úread)Úbcfiles    r   Úopen_libdevicer   (   s%   € Ü	Œm‹o˜tÔ	$¨Ø�{‰{‹}÷ 
%×	$×	$ús   •/¯
=c                 ó  • U S:X  a'  [        5       S   R                  =(       d	    [        S-  $ U(       a  SOSn[        5       U   R                  n[        XUS9nU(       a  [        O[        nU(       a  [        U5      $ XP-  $ )zó
Find the path of a CUDA library based on a search of known locations. If
the search fails, return a generic filename for the library (e.g.
'libnvvm.so' for 'nvvm') so that we may attempt to load it using the system
loader's search mechanism.
ÚnvvmÚstatic_cudalib_dirÚcudalib_dir©Ústatic)r   r   Ú_dllnamepatternr   Ú_staticnamepatternÚmax)Úlibr   Údir_typeÚlibdirÚ
candidatesÚnamepatterns         r   Úget_cudalibr&   -   sp   € ð ˆfƒ}ÜÓ Ñ'×,Ñ,×H´À&Ñ0HÐHæ+1Ñ'°}ˆÜÓ! (Ñ+×0Ñ0ˆä˜#¨fÑ5€JÞ(.Õ$´O€KÞ(Œ3ˆz‹?Ð?¨kÑ.?Ð?r   c                 óD   • [        U 5      n[        R                  " U5      $ )N)r&   ÚctypesÚCDLL)r!   Úpaths     r   Úopen_cudalibr+   ?   s   € Ü�sÓ€DÜ�;Š;�tÓÐr   c                 óh   • [         R                  R                  U 5      (       d  [        U  S35      eg )Nz
 not found)Úosr*   ÚisfileÚFileNotFoundError)r*   s    r   Úcheck_static_libr0   D   s,   € Ü�7‰7�>‰>˜$×ÑÜ 4 &¨
Ð 3Ó4Ð4ð  r   c                 óº   • U S:X  a  [        5       S   R                  $ U S:X  a  [        5       S   R                  $ U(       a  SOSn[        5       U   R                  $ )Nr   r   r   r   )r   Úby)r!   r   r"   s      r   Ú_get_source_variabler3   I   sW   € Ø
ˆfƒ}ÜÓ Ñ'×*Ñ*Ð*Ø	�Ó	ÜÓ Ñ,×/Ñ/Ð/æ+1Ñ'°}ˆÜÓ Ñ)×,Ñ,Ð,r   c            
      ó¢  • Sn  [        5       u  p[        S5        U H  n[        SU 35        M     [        SU 35        [        SSS9  [        X5      u  pE[        S5        [        S	U 35        [        R
                  S:X  a¾  U (       d·  [        R                  " 5       n[        R                  R                  [        R                  R                  SU S5      n [        U5       n	U	R                  5       n
SSS5        [        S W
R                  5        5       5      n[        S5        U H  n[        SU 35        M     SR                  5       nU H_  n[!        U5      n[        SR#                  U[%        U5      5      5        [        SU5         [        SSS9  ['        U5        [        S5        Ma     Sn[!        USS9n[        SR#                  U[%        USS95      5        [        SU5         [        SSS9  [)        U5        [        S5        [%        S5      n[        S U 35        [-        5       n[        SU5         [        SSS9  [)        U5        [        S5        U (       + $ ! [         a  n[        S
U 35        Sn  SnAGNSnAff = f! , (       d  f       GN¡= f! [         a    [        SU S35         GN~f = f! [         a!  n[        SU< SU< 35        Sn  SnAGM–  SnAff = f! [*         a   n[        SU< SU< 35        Sn  SnAGNSnAff = f! [*         a%  n[        SU< SU< 35        Sn  SnAU (       + $ SnAff = f)!z:Test library lookup.  Path info is printed to stdout.
    FzFinding driver from candidates:Ú	zUsing loader z	Trying to load driverz...)Úendz	okz		Loaded from z	ERROR: failed to open driver: TNÚlinuxÚprocÚmapsc              3   ó6   #   • U  H  nS U;   d  M  Uv •  M     g7f)z
libcuda.soN© )Ú.0Úss     r   Ú	<genexpr>Útest.<locals>.<genexpr>   s   é € ÐI¢| !°|ÀqÑ7HŸA™A¢|ùs   ‚
�	z	Mapped libcuda.so paths:z		z	ERROR: Could not open z) to determine absolute path to libcuda.soznvvm nvrtc cudartzFinding {} from {}z	Located atz	Trying to open libraryz	ERROR: failed to open z:
Ú	cudadevrtr   z	Checking libraryz	ERROR: failed to find r   zFinding libdevice from )r   Úprintr   r   ÚsysÚplatformr-   Úgetpidr*   ÚjoinÚsepr   r   ÚsetÚsplitÚOSErrorr&   Úformatr3   r+   r0   r/   r   )ÚfailedÚdlloaderr$   ÚlocationÚdllr*   ÚeÚpidÚmapsfileÚfr9   Ú	locationsÚlibsr!   Úwheres                  r   ÚtestrV   S   sû  € ð €FðÜ7Ó9ÑˆÜÐ/Ô0Û"ˆHÜ�B�x�j�/Ö"ñ #ä�˜h˜ZÐ(Ô)ÜÐ'¨UÒ3Ü Ó5‰	ˆÜˆfŒÜÐ   Ð'Ô(ô ‡|�|�wÓ¦vÜ�iŠi‹kˆÜ—7‘7—<‘<¤§¡§¡¨V¸°u¸vÓFˆð	)Ü�h” 1Ø—v‘v“x�÷  ô ÑI t§z¡z¤|ÓIÓIˆIÜÐ.Ô/Û%�Ü˜˜X˜JÐ'Ö(ñ &ð ×$Ñ$Ó&€DÛˆÜ˜3ÓˆÜÐ"×)Ñ)¨#Ô/CÀCÓ/HÓIÔJÜˆn˜dÔ#ð	ÜÐ,°%Ò8Ü˜ÔÜ�&ŽMñ ð €CÜ�s 4Ñ(€DÜ	Ð
×
%Ñ
% cÔ+?ÀØGKñ,Mó Nô Oä	ˆ.˜$ÔðÜÐ"¨Ò.Ü˜ÔÜˆfŒô ! Ó-€EÜ	Ð# E 7Ð
+Ô,Ü‹?€DÜ	ˆ.˜$ÔðÜÐ"¨Ò.Ü˜ÔÜˆfŒð
 Œ:Ðøô[ ó ÜÐ0°°Ð4Ô5ØŽûðú÷  –ûô
 ó 	(ô Ð,¨X¨Jð 7'ð '÷ (ð		(ûô2 ó 	Ý³sºAÐ>Ô?Ø�Fûð	ûô ó Ý³3ºÐ:Ô;ØŽûðûô ó Ý³3ºÐ:Ô;ØŒàŒ:Ðûð	úsŠ   „A,I* ÃJ$ Ã'JÃ8J$ Æ KÇ3 K2 É L É*
JÉ4J
Ê
JÊ
J!ÊJ$ Ê$KË KË
K/ËK*Ë*K/Ë2
LË<LÌLÌ
MÌ)M	Í	M)F)Ú__doc__r-   rB   r(   Únumba.misc.findlibr   Únumba.cuda.cuda_pathsr   Únumba.cuda.cudadrv.driverr   r   Únumba.cuda.cudadrv.errorr   rC   r   r   r   r   r&   r+   r0   r3   rV   r;   r   r   Ú<module>r\      s�   ðñ
ó 
Û 
Û å 'Ý 0ß KÝ 5ð ‡<�<�7ÓØ€OØ!ÑØ‡\�\�XÓØ#€OØ"Ñà €OØ"Ðòòô
@ò$ò
5ô
-ó]r   