在哪里pycuda.driver.mem\u分配() ? 在皮库达/驱动程序.py我只能找到mem\u alloc\u like()

2024-04-19 11:03:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和PYCUDA还不熟悉。你知道吗

在许多PYCUDA示例中,我可以找到如下代码:

import pycuda.driver as cuda

cuda.mem_alloc(a.nbytes) 

但当我看皮库达的时候/驱动程序.py,我找不到mem\u alloc的定义。你知道吗

我只能找到mem\u alloc\u like,它调用mem\u alloc():

def mem_alloc_like(ary):

    return mem_alloc(ary.nbytes)

这告诉我mem\u alloc肯定在图书馆的某个地方驱动程序.py进口。你知道吗

但是,以下是我在中发现的导入驱动程序.py,六个、numpy或sys都没有名为“mem\u alloc()的函数”

from __future__ import absolute_import
from __future__ import print_function
import six
try:
    from pycuda._driver import *  # noqa
except ImportError as e:
    if "_v2" in str(e):
    from warnings import warn
    warn("Failed to import the CUDA driver interface, with an error "
            "message indicating that the version of your CUDA header "
            "does not match the version of your CUDA driver.")
    raise
import numpy as np
import sys

Tags: thefrompyimportpycudaasdriver驱动程序
1条回答
网友
1楼 · 发布于 2024-04-19 11:03:39

pyCUDA是CUDA驱动程序API的包装器。pyCUDA就是这样公开这些api的

  1. 在C/C++ +

    使用Boost::python将这些函数公开给python,因为python 解释器是用C语言实现的(Cpython)

  2. 将这些包装器编译到_driver.so

  3. 导入共享库from pycuda._driver import *

But when I take a look into pycuda/driver.py, I can't find where mem_alloc is defined.

它在pycuda/src/cpp/cuda.hpp中定义

相关问题 更多 >