
    `i                         d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d d	l
Zej                            d
          rd dlmZ d dlmZ nd Z G d d          ZdZdZd	ad Zd	S )    )_util)get_plan_cache)clear_plan_cache)get_plan_cache_size)set_plan_cache_size)get_plan_cache_max_memsize)set_plan_cache_max_memsize)show_plan_cache_infoNlinux)get_current_callback_manager)set_cufft_callbacksc                      d S )N )argskwargss     c/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cupy/fft/config.pyr   r      s    t    c                       e Zd Zd ZdS )r   c                      t          d          )Nz)cuFFT callback is only available on Linux)RuntimeError)selfr   r   s      r   __init__zset_cufft_callbacks.__init__   s    JKKKr   N)__name__
__module____qualname__r   r   r   r   r   r      s(        	L 	L 	L 	L 	Lr   r   TFc                 <   t          j        d           t          | t                    rd t	          |           D             }n't          | t
                    r| }nt          d          t          |          dk    rt          d          t          |          a	dS )a  Set the GPUs to be used in multi-GPU FFT.

    Args:
        gpus (int or list of int): The number of GPUs or a list of GPUs
            to be used. For the former case, the first ``gpus`` GPUs
            will be used.

    .. warning::
        This API is currently experimental and may be changed in the future
        version.

    .. seealso:: `Multiple GPU cuFFT Transforms`_

    .. _Multiple GPU cuFFT Transforms:
        https://docs.nvidia.com/cuda/cufft/index.html#multiple-GPU-cufft-transforms
    zcupy.fft.config.set_cufft_gpusc                     g | ]}|S r   r   ).0is     r   
<listcomp>z"set_cufft_gpus.<locals>.<listcomp>4   s    '''a'''r   z%gpus must be an int or a list of int.   zMust use at least 2 GPUs.N)
r   experimental
isinstanceintrangelist
ValueErrorlentuple_devices)gpusdevss     r   set_cufft_gpusr-      s    " 
7888 $ B''5;;'''	D$		 B@AAA
4yyA~~4555 T{{HHHr   )cupyr   cupy.fft._cacher   r   r   r   r   r	   r
   sys_sysplatform
startswithcupy.fft._callbackr   r   enable_nd_planninguse_multi_gpusr*   r-   r   r   r   <module>r7      sO         + * * * * * , , , , , , / / / / / / / / / / / / 6 6 6 6 6 6 6 6 6 6 6 6 0 0 0 0 0 0    =G$$ 	L??????6666666  L L L L L L L L
      r   