GPU && CUDA:主机和设备间数据传输测试

数据传输测试,先从主机传输到设备,再在设备内传输,再从设备传输到主机。

H-->D

D-->D

D-->H

 1 // moveArrays.cu
 2 //
 3 // demonstrates CUDA interface to data allocation on device (GPU)
 4 // and data movement between host (CPU) and device.
 5
 6
 7 #include <stdio.h>
 8 #include <assert.h>
 9 #include <cuda.h>
10 #include "cuda_runtime.h"
11 #include "device_launch_parameters.h"
12 int main(void)
13 {
14     float *a_h, *b_h;     //指向主机的指针
15     float *a_d, *b_d;     //指向设备的指针
16
17     int N = 14;
18     int i;
19     //在主机端申请内存
20     a_h = (float *)malloc(sizeof(float)*N);
21     b_h = (float *)malloc(sizeof(float)*N);
22     //在设备端申请存储
23     cudaMalloc((void **)&a_d, sizeof(float)*N);
24     cudaMalloc((void **)&b_d, sizeof(float)*N);
25     //主机端数据初始化
26     for (i = 0; i < N; i++) {
27         a_h[i] = 10.f + i;
28         b_h[i] = 0.f;
29     }
30     //将数据从主机端传送到设备端:a_h-->a_d
31     cudaMemcpy(a_d, a_h, sizeof(float)*N, cudaMemcpyHostToDevice);
32
33     //在设备内传输数据
34     cudaMemcpy(b_d, a_d, sizeof(float)*N, cudaMemcpyDeviceToDevice);
35
36     //将数据从设备端传输到主机:b_d-->b_h
37     cudaMemcpy(b_h, b_d, sizeof(float)*N, cudaMemcpyDeviceToHost);
38
39     //核对结果
40     for (i = 0; i < N; i++)
41         assert(a_h[i] == b_h[i]);
42
43     //释放主机端存储
44     free(a_h);
45     free(b_h);
46     //释放设备端存储
47     cudaFree(a_d);
48     cudaFree(b_d);
49 }

测试环境:

Win7+VS2013+CUDA6.5

下载链接

时间: 2024-10-05 14:59:12

GPU && CUDA:主机和设备间数据传输测试的相关文章

OpenCV GPU CUDA OpenCL 配置

首先,正确安装OpenCV,并且通过测试. 我理解GPU的环境配置由3个主要步骤构成. 1. 生成关联文件,即makefile或工程文件 2. 编译生成与使用硬件相关的库文件,包括动态.静态库文件. 3. 将生成的库文件加入到程序中,加入过程类似于OpenCV库的添加过程. 详细操作参见: http://wenku.baidu.com/link?url=GGDJLZFwhj26F50GqW-q1ZcWek-QN2kAgVJ5SHrQcmte-nx9-GyIUKxGwIvtzJ_WoBddvasI

Mali GPU OpenGL ES 应用性能优化--测试+定位+优化流程

1. 使用DS-5 Streamline定位瓶颈 DS-5 Streamline要求GPU驱动启用性能测试,在Mali GPU驱动中激活性能测试对性能影响微不足道. 1.1 DS-5 Streamline简介 可使用DS-5 Streamline从CPU和Mali GPU中实时收集性能计数器,然后以图形方式显示这些计数器,其主要功能如下:     ? 收集计数器--从CPU和Mali GPU中     ? 保存收集到的计数器数据以供回放     ? 查看显示GPU活动.GPU活动和Framebu

怪兽z主机标准版视频测试。

我的淘宝店很早就开张了,但是一直没有好好打理,这次给大家带来的是本店所售一款主机的视频测试. CPU:AMD -A10 6700 主板:映泰Hi-Fi A88S3E 内存条:正品金士顿骇客游戏神条 机箱:金河田翼扬2082 固态硬盘:金泰克S500 存储硬盘:希捷1TB 硬盘 显卡:HD8670D. 红外遥控器:RII K25A 这是一台我自己搭配的主机,主要特色为主板的hifi音效.主芯片组也是最新的A88X.100%全固态电容.带3个USB3.0接口.可接入一个映泰的官方红外遥控器,实现红外

Ubuntu配置GPU+CUDA+CAFFE

参考网站: http://blog.csdn.net/xizero00/article/details/43227019/ (主要参考) http://www.cnblogs.com/platero/p/3993877.html (caffe+cudaGPU) http://www.cnblogs.com/platero/p/4118139.html (cuDNN) http://developer.download.nvidia.com/compute/cuda/repos/ubuntu140

UK8S 产品快报|支持快杰和 GPU 云主机、跨可用区、应用商店等特性

UK8S 是 UCloud 推出的 Kubernetes 容器云产品,完全兼容原生 API,为用户提供一站式云上 Kubernetes 服务.自上线以来,UK8S 一直紧跟开源 Kubernetes 的节奏,除了支持 Kubernetes 最新版本 1.14.6 外,近期 UK8S 又有哪些新动作? UK8S 应用商店 一.Helm 应用商店上线 Helm 是 Kubernetes 中的包管理工具,用于简化 Kubernetes 应用的部署和管理,可以将 Helm 理解为 Linux 下的 yu

pytorch gpu~ cuda cudacnn安装是否成功的测试代码

# CUDA TEST import torch x = torch.Tensor([1.0]) xx = x.cuda() print(xx) # CUDNN TEST from torch.backends import cudnn print(cudnn.is_acceptable(xx)) #血的教训!安装目录要英文目录不要搞在中文目录 !不然可能报些奇奇怪怪的bug! 原文地址:https://www.cnblogs.com/xuechengmeigui/p/12417137.html

Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9315560/1901284 0.说明 使用Nginx可以配置基于域名的虚拟主机.基于端口的虚拟主机和基于端口的虚拟主机,比较常用的是基于域名的虚拟主机,这里要做的配置是基于域名的虚拟主机,并且是配置多个基于域名的虚拟主机. 关于Nginx配置文件的说明可以参考官方文档,同时也可以参考老男孩老师的书

阿里云主机SSD实例磁盘测试及IO调度算法调整

测试背景及环境说明 阿里云ECS 主机配置: 4C8G [email protected]:~# grep -i "model name" /proc/cpuinfo model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60

卷积操作的GPU粗粒度并行实现及测试

一.    算法基本思想: 1.           GPU中的一个线程产生一个卷积结果,有多少个结果就使用多少个Block; 2.           矩阵和卷积核存放在共享内存中,卷积结果存放在全局内存中: 3.           支持10000以内任意维度的二维矩阵,卷积核最大支持16x16. 4.           支持任意多幅图像的批处理. 二.    实验平台: CPU:Intel(R) Xeon(R) E5-2650 0 @2.00GHz 16核 32线程 GPU:NVIDIA