CULA_USE_CUDA_COMPLEX
使用cula库函数计算复数矩阵相关问题时,需要用到culaDeviceFloat(or Double)Complex类型的矩阵,可以直接共用CUDA的cuFloatComplex,只需要在#include cula*.h之前插入:
#define CULA_USE_CUDA_COMPLEX
数组赋值方法:
//Allocate new matrix variable
cuFloatComplex* A;
cuFloatComplex* dev_A;
//Allocata memory
A = (cuFloatComplex*)malloc( sizeof( cuFloatComplex ) * N * N );
HANDLE_ERROR( cudaMalloc( (void**)&dev_A, sizeof( cuFloatComplex ) * N * N) );
//Initialize matrix
for(int i=0; i<N; i++){
for(int j=o; j<N; j++){
A[i + j * N] = make_cuFloatComplex(1, 1);
}
}
输出实数与虚数,用到cuCrealf()与cuCimagf()都是Float型(相应的:cuCreal()与cuCimag()为Double型):
printf("the matrix A:\n");
for(int i=0;i<N;i++){
for(int j=0; j<N; j++){
printf("(%f, %f)",cuCrealf(A[i+j*N]),cuCimagf(A[i+j*N]));
}
printf("\n");
}

浙公网安备 33010602011771号