§
    Ÿ²Åj×  ã                   ó¤  — U d dl Z d dlZd dlmZmZmZ d dlZd dlmZ g Z	ee
         ed<   de
defd„Z eej        d¦  «        sï eej        d	¦  «        rJ ‚ eej        d
¦  «        rJ ‚ eej        d¦  «        rJ ‚ eej        d¦  «        rJ ‚ eej        d¦  «        rJ ‚ ed¦  «        ej        j        d<    ed	¦  «        ej        j        d	<    ed
¦  «        ej        j        d
<    ed¦  «        ej        j        d<    ed¦  «        ej        j        d<    ed¦  «        ej        j        d<   deddfd„Zdeddfd„Z G d„ d¦  «        ZdS )é    N)ÚCallableÚListÚOptional)ÚStorageÚ__all__ÚnameÚreturnc                 ó   ‡ — ˆ fd„}|S )Nc                  ó*   •— t          d‰› d�¦  «        ‚)Nz	torch._C.z" is not supported on this platform)ÚRuntimeError)ÚargsÚkwargsr   s     €ú?C:\Projects\Historical\venv\Lib\site-packages\torch/cuda/gds.pyÚfnz_dummy_fn.<locals>.fn   s   ø€ ÝÐO tÐOÐOÐOÑPÔPÐPó    © )r   r   s   ` r   Ú	_dummy_fnr      s(   ø€ ðQð Qð Qð Qð Qð €Ir   Ú_gds_register_bufferÚ_gds_deregister_bufferÚ_gds_register_handleÚ_gds_deregister_handleÚ_gds_load_storageÚ_gds_save_storageÚsc                 óD   — t           j                             | ¦  «         dS ©zLRegisters a buffer.

    Args:
        s (Storage): Buffer to register.
    N)ÚtorchÚ_Cr   ©r   s    r   r   r   "   s    € õ 
„H×!Ò! !Ñ$Ô$Ð$Ð$Ð$r   c                 óD   — t           j                             | ¦  «         dS r   )r   r   r   r   s    r   r   r   +   s    € õ 
„H×#Ò# AÑ&Ô&Ð&Ð&Ð&r   c                   óf   — e Zd ZdZdedefd„Zdd„Zdd„Zdd	„Z	dde
deddfd„Zdde
deddfd„ZdS )Ú_GdsFilea±  Wrapper around cuFile.

    cuFile is a file-like interface to the GPUDirect Storage (GDS) API.

    Args:
        filename (str): Name of the file to open.
        flags (int): Flags to pass to ``os.open`` when opening the file. ``os.O_DIRECT`` will
            be added automatically.

    .. _CUDA GPUDirect Storage Documentation:
        https://docs.nvidia.com/gpudirect-storage/api-reference-guide/index.html#cufile-io-api
    ÚfilenameÚflagsc                 óä   — t           j        dk    rt          d¦  «        ‚|| _        || _        t          j        ||t
          j        z  ¦  «        | _        d | _	        |  
                    ¦   «          d S )NÚwin32z*GdsFile is not supported on this platform.)ÚsysÚplatformr   r#   r$   ÚosÚopenÚO_DIRECTÚfdÚhandleÚregister_handle)Úselfr#   r$   s      r   Ú__init__z_GdsFile.__init__B   se   € ÝŒ<˜7Ò"Ð"ÝÐKÑLÔLÐLØ ˆŒØˆŒ
Ý”'˜( E­B¬KÑ$7Ñ8Ô8ˆŒØ%)ˆŒØ×ÒÑÔÐÐÐr   r	   Nc                 ón   — | j         �|                      ¦   «          t          j        | j        ¦  «         d S )N)r-   Úderegister_handler)   Úcloser,   ©r/   s    r   Ú__del__z_GdsFile.__del__K   s4   € ØŒ;Ð"Ø×"Ò"Ñ$Ô$Ð$Ý
Œ�”ÑÔÐÐÐr   c                 óz   — | j         �
J d¦   «         ‚t          j                             | j        ¦  «        | _         dS )zpRegisters file descriptor to cuFile Driver.

        This is a wrapper around ``cuFileHandleRegister``.
        Nz4Cannot register a handle that is already registered.)r-   r   r   r   r,   r4   s    r   r.   z_GdsFile.register_handleP   s:   € ð ŒKÐÐØAñ  ÔÐå”h×3Ò3°D´GÑ<Ô<ˆŒˆˆr   c                 ó~   — | j         €
J d¦   «         ‚t          j                             | j         ¦  «         d| _         dS )zvDeregisters file descriptor from cuFile Driver.

        This is a wrapper around ``cuFileHandleDeregister``.
        Nz2Cannot deregister a handle that is not registered.)r-   r   r   r   r4   s    r   r2   z_GdsFile.deregister_handleZ   s@   € ð ŒKÐ#Ð#Ø?ñ $Ô#Ð#åŒ×'Ò'¨¬Ñ4Ô4Ð4ØˆŒˆˆr   r   ÚstorageÚoffsetc                 ót   — | j         €
J d¦   «         ‚t          j                             | j         ||¦  «         dS )am  Loads data from the file into the storage.

        This is a wrapper around ``cuFileRead``. ``storage.nbytes()`` of data
        will be loaded from the file at ``offset`` into the storage.

        Args:
            storage (Storage): Storage to load data into.
            offset (int, optional): Offset into the file to start loading from. (Default: 0)
        Nz4Cannot load data from a file that is not registered.)r-   r   r   r   ©r/   r8   r9   s      r   Úload_storagez_GdsFile.load_storagee   s?   € ð ŒKÐ#Ð#ØAñ $Ô#Ð#åŒ×"Ò" 4¤;°¸Ñ@Ô@Ð@Ð@Ð@r   c                 ót   — | j         €
J d¦   «         ‚t          j                             | j         ||¦  «         dS )aU  Saves data from the storage into the file.

        This is a wrapper around ``cuFileWrite``. All bytes of the storage
        will be written to the file at ``offset``.

        Args:
            storage (Storage): Storage to save data from.
            offset (int, optional): Offset into the file to start saving to. (Default: 0)
        Nz2Cannot save data to a file that is not registered.)r-   r   r   r   r;   s      r   Úsave_storagez_GdsFile.save_storaget   s?   € ð ŒKÐ#Ð#Ø?ñ $Ô#Ð#åŒ×"Ò" 4¤;°¸Ñ@Ô@Ð@Ð@Ð@r   )r	   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚintr0   r5   r.   r2   r   r<   r>   r   r   r   r"   r"   4   sê   € € € € € ðð ð ð ¨Sð ð ð ð ðð ð ð ð
=ð =ð =ð =ð	ð 	ð 	ð 	ðAð A Gð A°Sð AÀð Að Að Að AðAð A Gð A°Sð AÀð Að Að Að Að Að Ar   r"   )r)   r'   Útypingr   r   r   r   Útorch.typesr   r   rC   Ú__annotations__r   Úhasattrr   Ú__dict__r   r   r"   r   r   r   ú<module>rJ      sW  ðØ 	€	€	€	€	Ø 
€
€
€
Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à €€€Ø Ð Ð Ð Ð Ð ð €ˆˆcŒÐ Ð Ñ ð�Cð ˜Hð ð ð ð ð €wˆuŒxÐ/Ñ0Ô0ð LØˆw�u”xÐ!9Ñ:Ô:Ð:Ð:Ð:Øˆw�u”xÐ!7Ñ8Ô8Ð8Ð8Ð8Øˆw�u”xÐ!9Ñ:Ô:Ð:Ð:Ð:Øˆw�u”xÐ!4Ñ5Ô5Ð5Ð5Ð5Øˆw�u”xÐ!4Ñ5Ô5Ð5Ð5Ð5à09°	Ð:PÑ0QÔ0Q€E„HÔÐ,Ñ-Ø2;°)Ð<TÑ2UÔ2U€E„HÔÐ.Ñ/Ø09°	Ð:PÑ0QÔ0Q€E„HÔÐ,Ñ-Ø2;°)Ð<TÑ2UÔ2U€E„HÔÐ.Ñ/Ø-6¨YÐ7JÑ-KÔ-K€E„HÔÐ)Ñ*Ø-6¨YÐ7JÑ-KÔ-K€E„HÔÐ)Ñ*ð%˜Gð %¨ð %ð %ð %ð %ð'˜gð '¨$ð 'ð 'ð 'ð 'ðMAð MAð MAð MAð MAñ MAô MAð MAð MAð MAr   