×
現在地 >> メニュー >> CUDA >> CUDA::基本編06 >> CUBLAS::データ設定 >> CUBLAS::行列

行列


データのコピーや取得には、「cublasSetMatrix()」、「cublasGetMatrix()」関数を使う。

[例]

//(y×x) = (3×4)
float host[3][4]=
{
	{1,2,3,4},
	{5,6,7,8},
	{9,10,11,12},
};
... ...
	float *gpu; //GPUメモリ格納用
	float *FromGpu = new float[9];

	//row:y col:x
	cublasSetMatrix(3,4,sizeof(float),host,4,gpu,4);  //GPUへコピー
	cublasGetMatrix(3,3,sizeof(float),gpu,4,FromGpu,3);//一部をCPUへコピー


■cublasStatus CUBLASAPI cublasSetMatrix (int rows, int cols, int elemSize,
                              const void *A, int lda, void *B,
                              int ldb);

GPUへの2次元のデータコピーを行う。
  • rows:縦方向の要素数
  • cols:横方向の要素数
  • elemSize:1要素あたりのバイト数
  • A:データ元
  • lda:行列Aの1行あたりの次元数(横方向の要素数の数)
  • B:コピー先
  • ldb:行列Bの1行あたりの次元数(横方向の要素数の数)


■cublasStatus CUBLASAPI cublasGetMatrix (int rows, int cols, int elemSize,
                              const void *A, int lda, void *B,
                              int ldb);

GPUにあるの行列データ取り出す
引数は、「cublasSetMatrix()関数参照」

サンプルコード >> CUDA::基本編06まとめ2

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます

広告募集中