次のコードをインターネットからコピーし、Tesla C2075 がインストールされているサーバーでコンパイルしようとしましたが、倍精度をサポートする必要があります。また、フラグ sm_20 を使用してコードをコンパイルします。
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cuda_runtime.h>
#include <cuComplex.h>
#include <cublas_v2.h>
using namespace std;
typedef double2 Complex;
#define m 1024
#define n 300
#define k 1024
int main(int argc, char *argv[])
{
Complex _A[m*k], _B[k*n];
Complex *A, *B;
cudaMalloc((void**)&A, m*k*sizeof(Complex));
cudaMalloc((void**)&B, k*n*sizeof(Complex));
for (int i=0; i<m*k; i++) _A[i] = make_cuDoubleComplex(rand()/(double)RAND_MAX, rand()/(double)RAND_MAX);;
for (int i=0; i<k*n; i++) _B[i] = make_cuDoubleComplex(rand()/(double)RAND_MAX, rand()/(double)RAND_MAX);
cudaMemcpy( A, _A, (m*k)*sizeof(Complex), cudaMemcpyHostToDevice );
cudaMemcpy( B, _B, (k*n)*sizeof(Complex), cudaMemcpyHostToDevice );
return 0;
}
コンパイルはしますが、実行時には常に「セグメンテーション エラー (コア ダンプ)」が返されます。コードに何か問題がありますか?ありがとう。