小编gra*_*avy的帖子

使用 cmake 使用 cpp 和 cuda 源构建 pybind11 模块

我正在尝试为需要使用支持 cuda 的编译器进行编译的虚拟类生成 python 绑定。我正在使用 cmake 3.12.0、pybind11 v2.2.3 和 nvcc 7.5.17。编译失败,因为 和 等选项-flto直接-fno-fat-lto-objects传递给 nvcc,而 nvcc 无法识别它们。

这是一个(最小)示例:
Cuda 代码:

//Adder.hpp
#include <thrust/host_vector.h>
struct Adder {
    thrust::host_vector<float> a_h;
    thrust::host_vector<float> b_h;
    thrust::host_vector<float> r_h;
    int N;

    Adder(int N);
    void set_a(float const * const in);
    void set_b(float const * const in);
    void calc();
    void calc_gpu();
};

//Adder.cu
#include "Adder.hpp"
#include <thrust/device_vector.h>

Adder::Adder(int N): N(N),a_h(N),b_h(N),r_h(N) {}
void Adder::set_a(float const * const in) {
    for (int i=0; i<N; ++i) {
        a_h[i] = …
Run Code Online (Sandbox Code Playgroud)

cuda compiler-errors cmake nvcc pybind11

6
推荐指数
1
解决办法
4263
查看次数

标签 统计

cmake ×1

compiler-errors ×1

cuda ×1

nvcc ×1

pybind11 ×1