cupy.fft._cache.PlanCache#

class cupy.fft._cache.PlanCache(Py_ssize_t size=16, Py_ssize_t memsize=-1, int dev=-1)[源代码]#

一个针对每个线程、每个设备的,最近最少使用(LRU)的 cuFFT 计划缓存。

参数:
  • size (int) – 缓存可以容纳的计划数量。默认值是16。将其设置为``-1``将使此限制被忽略。

  • memsize (int) – 缓存中的计划用于其工作区的GPU内存量,以字节为单位。默认值为 -1,表示无限制。

  • dev (int) – 缓存目标设备的ID。

备注

  1. 通过将 size 设置为 0 (通过调用 set_size())或 memsize 设置为 0 (通过调用 set_memsize()),缓存将被禁用,任何操作都将无效。要重新启用它,只需设置一个非零的 size 和/或 memsize

  2. 用户可以实例化此类,但不鼓励这样做。相反,我们期望通过 get_plan_cache() 获取缓存句柄的以下规范使用模式:

    from cupy.cuda import Device
    from cupy.fft.config import get_plan_cache
    
    # get the cache for device n
    with Device(n):
        cache = get_plan_cache()
        cache.set_size(0)  # disable the cache
    

    特别是,设备 n 的缓存应在设备 n 的上下文中进行操作。

  3. 这个类是线程安全的,因为默认情况下它是按线程创建的。当启动一个新线程时,新的缓存不会被初始化,直到调用 get_plan_cache() 或手动调用构造函数。

  4. 对于多GPU计划,该计划将被添加到每个参与GPU的缓存中。在任何缓存中移除时,该计划将从每个参与GPU的缓存中移除。

  5. 此缓存支持迭代器协议,并返回一个 2 元组:(键, 节点),从最近使用的计划开始。

方法

__getitem__(key, /)#

返回 self[key]。

__setitem__(key, value, /)#

将 self[key] 设置为 value。

__iter__()#

实现 iter(self)。

clear(self)#
get(self, tuple key, default=None)#
get_curr_memsize(self) Py_ssize_t#
get_curr_size(self) Py_ssize_t#
get_memsize(self) Py_ssize_t#
get_size(self) Py_ssize_t#
set_memsize(self, Py_ssize_t memsize)#
set_size(self, Py_ssize_t size)#
show_info(self)#
__eq__(value, /)#

返回 self==value。

__ne__(value, /)#

返回 self!=value。

__lt__(value, /)#

返回 self<value。

__le__(value, /)#

返回 self<=value。

__gt__(value, /)#

返回 self>value。

__ge__(value, /)#

返回 self>=value。