【发布时间】:2014-06-04 22:08:46
【问题描述】:
我有一个作为 C++ 类的 conv net 实现。该类构建在生成 CUDA 代码的模板库 (mshadow) 之上,因此它采用头文件的形式。因此,它只能在使用 nvcc 编译的文件中使用。我现在正在尝试将这个类包装在 Python 中,以便更轻松地加载和保存参数、数据等。
如何使用 Cython 包装 C++ 类?我查看了npcuda-example,它演示了如何围绕 C++ 类编写包装 pyx 文件。不幸的是,在此示例中,pyx 文件编译为 cpp 文件。这对我不起作用,因为我需要在 pyx 文件中包含类头并使用 nvcc 编译它。
我相信我可以使用 npcuda-example 中的 setup.py,如果有某种方法可以强制包装器 pyx 文件编译为 cu 文件,以便在 distutils 尝试编译扩展时调用 nvcc。
有什么想法吗?
【问题讨论】:
标签: cuda cython distutils nvcc