zoukankan      html  css  js  c++  java
  • CUDA初试

    1.基本概念

      CUDA,全称是Compute Unified Device Architecture,意即统一计算架构,是NVIDIA推出的一种整合技术,开发者可以利用NVIDIA的GeForce 8 以后的GPU和较新的Quadro GPU进行计算。 ——维基百科

      利用CUDA这个平台,可以方便地使用GPU来加速程序的数据运算。GPU对于深度学习这类领域非常重要,因为其具有强大的并行计算能力和浮点运算能力。

      CUDA的编程模型将CPU作为主机(Host),将GPU作为设备(Device),CPU用来控制整体调度和程序逻辑,GPU负责执行高度线程化的数据并行部分。

      运行在GPU上的程序被称为内核。

    2.程序的一般步骤

      01.分配主机储存器并初始化

      02.分配设备储存器

      03.将已经初始化的主机储存器内容复制到已分配的设备储存器上

      04.GPU进行计算

      05.将计算完的结果从设备复制到主机上

      06.处理该结果数据

    3.CUDA的线程层次

      主要是三个层次,网格(Grid)、线程块(Block)、线程(Thread)

    (抱歉,下图的每个第一列的(1,0)应该改为(0,1),也就是位置为(x,y)  )

      计算单个Thread的id:

    ID=blockDim.x*blockDim.y*blockIdx.y*gridDim.x+gridDim.x*blockDim.x*threadIdx.y+blockDim.x+threadIdx.x;

    4.一个简单的实例

    CUDA的安装很方便,安装完后VS的相关环境配置一般都自动完成

    实例

    #include “cuda_runtime.h"
    #include "device_launch_parameters.h"
    #include <stdio.h>
    __global__ void hello() // kernel
    {
        printf("hello\n");
    }
    int main()
    {
        hello<< <1,5>> >();
        cudaDeviceReset();
        return 0;
    }

    CUDA安装后也会生成很多examples,都很不错。

    ------------ 转载请注明出处 ------------
  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/whlook/p/6476735.html
Copyright © 2011-2022 走看看