最終更新:
mikk_ni3_92 2008年11月03日(月) 15:28:27履歴
現在地 >> メニュー >> CUDA >> CUDA::基本編06 >> CUDA::基本編06まとめ1
関連:CUBLAS::ベクトル
関連:CUBLAS::ベクトル
#include <iostream>
#include <algorithm>
#include <cublas.h>
float host[]={11,23,56,3,21,8,7,9};
int main(int argc, char **argv)
{
float *gpu; //GPUメモリ格納用
float *FromGpu = new float[3];
cublasStatus status;
status = cublasInit(); //初期化
if (status != CUBLAS_STATUS_SUCCESS) {
std::cerr << "Can't Initialization CUBLAS\n";
return EXIT_FAILURE;
}
if ( cublasAlloc(8, sizeof(float), (void**)&gpu) != CUBLAS_STATUS_SUCCESS){ //メモリ確保
std::cerr << "Can't allocate Device memory\n";
return -1;
}
cublasSetVector(8, sizeof(float), host, 1, gpu, 1); //GPUへデータコピー
cublasGetVector(3,sizeof(float),gpu,1,FromGpu,1); //GPUから3要素データを取り出す
cublasFree(gpu);//メモリ解放
status = cublasShutdown(); //シャットダウン
if (status != CUBLAS_STATUS_SUCCESS) {
std::cerr << "Can't ShutDown CUBLAS\n";
return EXIT_FAILURE;
}
std::copy(FromGpu,FromGpu+3,std::ostream_iterator<float>(std::cout,"\n"));//出力テスト
delete [] FromGpu;
return EXIT_SUCCESS;
}

