小编use*_*687的帖子

从命令行运行nvcc时出现问题

我需要从命令行使用nvcc编译cuda .cu文件.该文件是"vectorAdd_kernel.cu"并包含以下代码:

extern "C" __global__ void VecAdd_kernel(const float* A, const float* B, float* C, int N)
{
    int i = blockDim.x * blockIdx.x + threadIdx.x;
    if (i < N)
        C[i] = A[i] + B[i];
}
Run Code Online (Sandbox Code Playgroud)

我使用以下命令(我需要获取.cubin文件):

nvcc --cubin --use-local-env --cl-version 2010 -keep -I "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" vectorAdd_kernel.cu
Run Code Online (Sandbox Code Playgroud)

编译器创建文件vectorAdd_kernel.cpp4.ii和vectorAdd_kernel.cpp1.ii然后它使用以下输出停止:

C:\Users\Massimo\Desktop\Pluto>nvcc --cubin --use-local-env --cl-version 2010 vectorAdd_kernel.cu -keep -I "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"

vectorAdd_kernel.cu

vectorAdd_kernel.cu

c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h(29): error: invalid redeclaration of type name "size_t" …
Run Code Online (Sandbox Code Playgroud)

c++ cuda nvcc visual-c++

9
推荐指数
2
解决办法
2841
查看次数

std::bind 具有多个参数的成员函数

我有这个代码

struct A {
    void f(int) {}
    void g(int, double) {}
};

int main() {
    using std::placeholders;
    A a;

    auto f1 = std::bind(&A::f, &a, _1);
    f1(5);                                   //  <--- works fine

    auto f2 = std::bind(&A::g, &a, _1);
    f2(5, 7.1);                              //  <--- error!
}
Run Code Online (Sandbox Code Playgroud)

我从编译器(gcc 4.8.1)收到此错误:

error: no match for call to '(std::_Bind<std::_Mem_fn<void (A::*)(int, double)>(A*, std::_Placeholder<1>)>) (int, double)'
 f2(1, 1.1);
           ^  
Run Code Online (Sandbox Code Playgroud)

你能告诉我错误在哪里吗?

谢谢,

马西莫

bind member stdbind

2
推荐指数
1
解决办法
1606
查看次数

标签 统计

bind ×1

c++ ×1

cuda ×1

member ×1

nvcc ×1

stdbind ×1

visual-c++ ×1