L iUddlZddlZddlmZmZddlZddlmZgdZe e e d<de defdZ e ejd s#e ejd rJe ejd rJe ejd rJe ejd rJe ejdrJe d ejjd <e d ejjd <e d ejjd <e d ejjd <e d ejjd <e dejjd<deddfdZdeddfdZGddZy)N)CallableOptional)Storage)gds_register_buffergds_deregister_bufferGdsFile__all__namereturncfd}|S)Nc"tdd)Nz torch._C.z" is not supported on this platform) RuntimeError)argskwargsr s T/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/cuda/gds.pyfnz_dummy_fn..fnsYtf,NOPP)r rs` r _dummy_fnrsQ Ir_gds_register_buffer_gds_deregister_buffer_gds_register_handle_gds_deregister_handle_gds_load_storage_gds_save_storagescBtjj|y)a:Registers a storage on a CUDA device as a cufile buffer. Example:: >>> # xdoctest: +SKIP("gds filesystem requirements") >>> src = torch.randn(1024, device="cuda") >>> s = src.untyped_storage() >>> gds_register_buffer(s) Args: s (Storage): Buffer to register. N)torch_Crrs rrr&s HH!!!$rcBtjj|y)awDeregisters a previously registered storage on a CUDA device as a cufile buffer. Example:: >>> # xdoctest: +SKIP("gds filesystem requirements") >>> src = torch.randn(1024, device="cuda") >>> s = src.untyped_storage() >>> gds_register_buffer(s) >>> gds_deregister_buffer(s) Args: s (Storage): Buffer to register. N)rrrr s rrr6s HH##A&rcdeZdZdZdedefdZddZddZdd Z dd e d eddfd Z dd e d eddfd Z y)raWrapper around cuFile. cuFile is a file-like interface to the GPUDirect Storage (GDS) API. See the `cufile docs `_ for more details. 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. Example:: >>> # xdoctest: +SKIP("gds filesystem requirements") >>> src1 = torch.randn(1024, device="cuda") >>> src2 = torch.randn(2, 1024, device="cuda") >>> file = torch.cuda.gds.GdsFile(f, os.O_CREAT | os.O_RDWR) >>> file.save_storage(src1.untyped_storage(), offset=0) >>> file.save_storage(src2.untyped_storage(), offset=src1.nbytes) >>> dest1 = torch.empty(1024, device="cuda") >>> dest2 = torch.empty(2, 1024, device="cuda") >>> file.load_storage(dest1.untyped_storage(), offset=0) >>> file.load_storage(dest2.untyped_storage(), offset=src1.nbytes) >>> torch.equal(src1, dest1) True >>> torch.equal(src2, dest2) True filenameflagsctjdk(r td||_||_t j ||t jz|_d|_ |jy)Nwin32z*GdsFile is not supported on this platform.) sysplatformrr#r$osopenO_DIRECTfdhandleregister_handle)selfr#r$s r__init__zGdsFile.__init__gsV <<7 "KL L   ''(EBKK$78%)  rr Ncz|j|jtj|jy)N)r-deregister_handler)closer,r/s r__del__zGdsFile.__del__ps( ;; "  " " $ rc|jJdtjj|j|_y)zpRegisters file descriptor to cuFile Driver. This is a wrapper around ``cuFileHandleRegister``. Nz4Cannot register a handle that is already registered.)r-rrrr,r4s rr.zGdsFile.register_handleus: {{" B "hh33DGG< rc|jJdtjj|jd|_y)zvDeregisters file descriptor from cuFile Driver. This is a wrapper around ``cuFileHandleDeregister``. Nz2Cannot deregister a handle that is not registered.)r-rrrr4s rr2zGdsFile.deregister_handles= {{& @ & '' 4 rstorageoffsetc|jJdtjj|j||y)amLoads 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-rrrr/r8r9s r load_storagezGdsFile.load_storages:{{& B & ""4;;@rc|jJdtjj|j||y)aUSaves 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-rrrr;s r save_storagezGdsFile.save_storages:{{& @ & ""4;;@r)r N)r) __name__ __module__ __qualname____doc__strintr0r5r.r2rr<r>rrrrrGse>S =  AG AS A A AG AS A Arr)r)r'typingrrr torch.typesrr listrC__annotations__rhasattrr__dict__rrrrrrrKs % cCHuxx/0uxx!9:: :uxx!788 8uxx!9:: :uxx!455 5uxx!455 509:P0QEHH,-2;