231
社区成员
发帖
与我相关
我的任务
分享
int maxIdx = 0;
int num_h[8] = {1, 3, 5, 7, 8, 6, 4, 2};
int *p = (int*)malloc(1 * sizeof(int));
float *num_d; //显存中存放
cutilSafeCall(cudaMalloc((void**)&num_d, sizeof(int) * 8));
cutilSafeCall(cudaMemcpy(num_d, num_h, 8 * sizeof(int), cudaMemcpyHostToDevice));
maxIdx = cublasIsamax(N, num_d, 1) - 1; //此处调用的是CUBLAS库函数
printf("数组中最大值所在的位置:%d\n", maxIdx);
cutilSafeCall( cudaMemcpy(&num_d[maxIdx], p, sizeof(int) * 1, cudaMemcpyDeviceToHost));
printf("最大值为:%d\n", *p);
cutilSafeCall(cudaFree(num_d));
free(p);