我需要从命令行使用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) 我有这个代码
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)
你能告诉我错误在哪里吗?
谢谢,
马西莫