zoukankan      html  css  js  c++  java
  • CUDA入门

    CUDA API包括三个,从低到高等级分别为 Thrust API  Runtime API   Driver API

    用于CUDA的GPU是安装于主机系统中的独立设备

    GPGPU运行在一个和主处理器相隔离的存储空间中

    CUDA Kernel是可在主机代码中调用而在CUDA设备上运行的子程序(Kernel没有返回值)

    Kernel的调用时异步的,即主机仅仅把要执行的Kernel顺序提交给GPGPU,并不等待执行完成,然后直接处理后面的其他任务

      cudaThreadSynchronize() 使主机进入阻塞状态

      cudaMemory() 实现阻塞式数据传输

    GPU上的基本运行单位是线程

    GPU上最大的可共享的内存区域成为全局内存

      常量内存、高速缓存、共享内存、局域内存、纹理内存、寄存器

    GPGPU编程的三条法则

      1 将数据放入病始终存储于GPGPU

        pcie总线速度大概是8gb/s,而GPU全局内存的速度大概是160-200gb/s

      2 交给GPGPU足够多的任务

        传输数据还要消耗时间,因此,最好让GPU工作时间能补偿传输所浪费的资源

      3 注重GPGPU上的数据重用,以避免带宽限制

        尽量重用数据以获取高性能

    回归测试:经常用一段代码作为回归测试,测试kernel函数的正确性

  • 相关阅读:
    mybatis(十)缓存
    mybatis(八)复杂查询
    mybatis(六)分页
    mybatis(九)动态SQL
    mybatis(七)只用注解开发
    mybatis(五) 日志
    log4j.properties 相关配置
    mybatis(四)中可能出现的问题
    MyBatis(三) 配置解析
    IIS 发布 .net core 3.1
  • 原文地址:https://www.cnblogs.com/xing901022/p/3253448.html
Copyright © 2011-2022 走看看