当前位置: 首页 > news >正文

武汉疾控最新发布新手学seo

武汉疾控最新发布,新手学seo,招聘网站是怎么做推广,建一个政府网站1. 引言 前序博客: CUDA简介——基本概念 CPU是用于控制的。即,host控制整个程序流程: 1)程序以Host代码main函数开始,然后顺序执行。 Host代码是顺序执行的,并执行在CPU之上。Host代码会负责Launch ke…

1. 引言

前序博客:

  • CUDA简介——基本概念

CPU是用于控制的。即,host控制整个程序流程:

  • 1)程序以Host代码main函数开始,然后顺序执行。
    • Host代码是顺序执行的,并执行在CPU之上。
    • Host代码会负责Launch kernel。
  • 2)对于想转移给CPU执行的代码,称为Device代码,通过Launch kernel来实现:
    • Device代码是并行执行的,并执行在GPU之上。
    • kernel做为a grid运行在Device端。
    • Device端程序会立即返回给Host。即,除非明确要求,Host并不会等待Device执行完成后才再执行后续Host代码。【因此,如需收集特定kernel launch Device程序的执行结果,需在host代码中创建明确的barrier,让main c函数等待kernel执行完成再继续执行后续代码。】

在这里插入图片描述

launch kernel时的语法规则为:

  • 与常规C函数调用类似
  • 需指定配置参数grid_size和block_size,二者均为dim3 CUDA数据结构,默认均为(1,1,1)。
    在这里插入图片描述

launch kernel示例如:
在这里插入图片描述

从Host角度来看,实际更详细的程序流为:

  • 1)程序以Host代码main函数开始,然后顺序执行。
    • Host代码是顺序执行的,并执行在CPU之上。
    • 为kernel launch做准备【Host和Device内存是独立的】:Host与Device之间的数据拷贝至关重要,且是程序性能主要限制因素。
      • 分配Device内存:cudaMalloc(...)
      • 将Host上数据拷贝到Device上:cudaMemcpy(...),即将数据由CPU拷贝到GPU之上。
    • Host代码会负责Launch kernel:在GPU上并行执行Threads。
    • 为获取kernel执行结果,需将Device数据拷贝到Host上:cudaMemcpy(...)

在这里插入图片描述
其中,Device内存管理:

  • 与C中内存管理类似:C中内存分配用malloc(...),内存释放用free(...)
    在这里插入图片描述

  • CUDA Device内存管理为:

    • 内存分配用cudaMalloc(LOCATION, SIZE)
      • LOCATION:Device上分配内存的内存位置,为某GPU内存地址。
      • size:为分配的字节数。
    • 内存释放用cudaFree()
      在这里插入图片描述

Device和Host之间数据拷贝:

  • 使用cudaMemcpy(dst, src, numBytes, direction)
    • dst:拷贝目标地址
    • src:拷贝源地址
    • numBytes:拷贝字节数。numBytes = N*sizeof(type)
    • direction:拷贝方向。
      • cudaMemcpyHostToDevice:由Host拷贝数据到Device。
      • cudaMemcpyDeviceToHost:由Device拷贝数据到Host。

总体的完整流程为:

  • 1)以main()函数起始
  • 2)定义变量:通常以h_来表示Host端变量,以d_来表示Device端变量。若在Host端引用了device变量,则程序将崩溃,反之亦然。
    在这里插入图片描述
  • 3)分配device内存:使用cudaMalloc(...)
    在这里插入图片描述
  • 4)将host数据拷贝到device:使用cudaMemcpy(...)。【此时假设h_c为已做数据初始化】
    在这里插入图片描述
  • 5)设置kernel launch配置参数:grid_size和block_size。【下图中均为默认值(1,1,1)】
    在这里插入图片描述
  • 6)Launch kernel:
    在这里插入图片描述
  • 7)将device执行结果拷贝回host:使用cudaMemcpy(...)
    在这里插入图片描述
  • 8)释放device和host内存:分别使用cudaFree(...)free(...)
    在这里插入图片描述
  • 9)结束main()函数执行。
    在这里插入图片描述

参考资料

[1] 2019年5月视频 Intro to CUDA (part 2): Programming Model

http://www.fp688.cn/news/154620.html

相关文章:

  • 淄博微网站建设搜索引擎有哪些平台
  • 贵州润铁祥建设工程有限公司网站关键词搜索引擎工具爱站
  • 家居网站 模板金华百度seo
  • wordpress 短代码 if is single站长工具seo推广秒收录
  • 科技公司网站版面设计网页设计效果图及代码
  • 网站后台编辑器无法显示关键词优化公司哪家好
  • 本地企业网站建设模板潍坊网站建设seo
  • 河源市建设网站北京seo多少钱
  • 大连网络营销网站建站系统源码
  • 重庆网站建设网领科技昆明网络推广公司排名
  • 未支付网站建设挂哪个科目虎扑体育网体育
  • 什么专业学做网站如何在手机上制作网站
  • wordpress页头导航类目没有链接济南优化网页
  • 在国外服务器上做网站项目如何赚钱搜索引擎优化的要点
  • 企业网站备案信息查询系统宁波网站建设公司
  • 湘潭学校网站建设 磐石网络专注抚顺网络推广
  • 医疗网站设计网站重庆做seo外包的
  • 网站备案 优帮云google官网注册
  • dreamweaver怎么做网站吴中seo页面优化推广
  • 做淘宝优惠网站谷歌关键词推广怎么做
  • web浏览器什么意思重庆网页优化seo公司
  • 用表格做网站教程市场推广方案和思路
  • 专业做俄语网站建设司免费隐私网站推广
  • 自己如何建企业网站网页设计培训教程
  • 东莞模板网站制作哪家好html友情链接
  • 北京自助建站系统西安高端网站建设公司
  • 国内室内设计网站推荐网络营销推广主要做什么
  • 建设信用卡申请进度查询官方网站培训机构哪家好
  • 网站做seo多少钱怎么在百度制作自己的网站
  • 更改域名代理商对网站有影响吗百度一下子就知道了