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

花生壳怎么建设购物网站教育网站制作公司

花生壳怎么建设购物网站,教育网站制作公司,上海网页制作公司 酒店,网站建设中 下载oneAPI简介 Intel oneAPI是Intel提供的统一编程模型和软件开发框架。 它旨在简化可充分利用英特尔各种硬件架构#xff08;包括 CPU、GPU 和 FPGA#xff09;的应用程序的开发 oneAPI一个重要的特性是开放性#xff0c;支持多种类型的架构和不同的硬件供应商#xff0c;是…oneAPI简介 Intel oneAPI是Intel提供的统一编程模型和软件开发框架。 它旨在简化可充分利用英特尔各种硬件架构包括 CPU、GPU 和 FPGA的应用程序的开发 oneAPI一个重要的特性是开放性支持多种类型的架构和不同的硬件供应商是一种统一的编程模型。使得开发人员拥有可以选择最佳硬件来做加速计算的自由不用锁定某些厂商专有的硬件即可提高软件的开发生产力并且获得与硬件加速设备相匹配的性能 随着大数据到来仅仅依靠CPU平台的计算是不够的使得不同种类的计算加速设备出现比如GPU、FPGA......但这些加速设备的引用也给应用程序的开发带来一个问题如果想要从某个特定的计算加速设备切换到另一个厂商的另外一个加速设备会带来非常大的工作量和开销oneAPI这种统一变成模型的提出就是为了解决这个问题它希望有一种统一的编程语言有一种统一接口的库函数使得应用程序在不同硬件加速设备迁移的时候所付出的代价可以达到最小 上图描述了异构计算软件生态现状可以看出没有一个在总体上占优势的厂商而是处于一种分散的状态。比如在AI的模型训练主要占主导地位的还是英伟达的一些库高性能计算领域主导的还是英伟达的GPU 什么是异构计算首先计算单元可以分成通用计算单元CPU专用计算单元GPU等简单说就是由一个或若干个通用计算单元加一个或若干个专用计算单元构建的系统就是异构计算系统由两者协同起来共同执行通用计算任务就是异构计算异构计算的目的一般是加速和节能在过去GPU只能执行图形任务现在GPU已经具备了通用计算的能力和CPU协同工作就组成了一个异构计算系统。有了硬件的实现同样需要软件的支持目前比较流行的编程语言是CAMP/OPENCL/CUDA oneAPI有两种编程模型第一种是直接编程Direct Programming有统一的编程语言SYCL它是基于C标准的编程语言。另一种是基于库的编程API-Based Programming。对于Level 0这个跟硬件加速设备打交道的层上如果硬件厂商实现了这层接口那么它的设备就可以被oneAPI上层的框架使用 SYCL是由Khronos Group提供的一个开放的标准主要是为了针对异构计算领域。标准C是主机端适用的一个标准针对异构计算领域C在不同种类的硬件加速设备的设备端的部分是没有提及的SYCL就弥补了C在异构计算领域硬件加速设备的缺失。SYCL是标准的C没有针对不同硬件有语法上的扩展。下图是SYCL和CUDA源代码在不同硬件设备上的比较 SYCLomatic是oneAPI产品里面的CUDA开源的迁移工具所有源代码在github上github.com/oneapi-src/SYCLomatic。 有的部分在CUDA源代码里面有但是在迁移后的SYCL源代码里面没有则会以注释的形式标记出来程序员需要人工修改 通过上面的介绍我们就可以知道在不同的计算领域里面可以使用不同的Intel oneAPI开发包可以使得程序运行在不同种类的计算加速设备上面比如在高性能计算、人工智能、嵌入式等领域都有oneAPI相应的工具包 oneAPI工具包简介 Intel® oneAPI Base Toolkit是基础工具套件直接编程包括Intel® oneAPI DPC/C Compiler,Intel® oneAPI DPC Compatibility Tool,Intel® Distribution for Python,Intel® FPGA Add-on for oneAPI Base ToolkitAPI编程包括Intel® oneAPI DPC Library oneDPL等库分析调试工具包括Intel® VTune Profiler,Intel® Advisor等 除了基础工具套件之外还有其它工具包比如高性能计算、物联网、渲染、人工智能等领域可以在官网查看 https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html SYCL编程简介 CPU端也称Host端异构平台上面的其它硬件加速器称为Device端SYCL应用程序分为在主机端执行的部分和在设备端执行的部分主机端就在CPU运行设备端是要由主机端的CPU递交给某一个设备递交的过程是通过Command Queue模块去做 一个程序分为Host code和Device code其中后者又总被称为Kernel 一个程序分为很多scope比如Application scopeCommand group scopeDevice scope不是所有的C的内容适用于Device scope buffer对象包含了服务于不同种类计算设备的每个数据临时存储的一块空间 queue对象很重要的目的就是递交计算任务 buffer对象可以通过调用get_access使buffer的数据可以传到针对这个硬件设备的数据区域上 handler对象调用parallel_for去执行设备端的计算任务通常与lambda函数搭配使用 SYCL有两个内存模式 一是Buffer Memory ModelBMM内存模式是使用buffer对象的一种方式如下图 使用malloc_shared函数创建指针变量可以使用另一种Unified Shared MemoryUSM内存模式即CPUGPU共享一片内存区域在这种模型之下parallel_for需要通过queue对象调用并在最后使用wait函数是因为虽然CPU和GPU共享内存但在一个时间段内只能有一个访问 演示一个完整的SYCL程序USM内存模式 #includeCL/sycl.hpp constexpr int N16; using namespace sycl; int main(){ queue q; int *datamalloc_sharedint(N,q); q.parallel_for(N,[](auto i){ data[i]i; }).wait(); for(int i0;iN;i)std::coutdata[i]’\n’; free(data,q); return 0; } device类描述硬件加速器一个重要的接口是可以获取设备相关信息可以通过这个设备信息创建设备选择器从而更好地选择设备此外queue的创建不需要参数所以如果想要知道queue对应于异构计算平台的哪一个设备就只能使用device类 device_selector包含default_selector,cpu_selector,gpu_selector,如果使用default_selector去创建queue那么设备的选择就全部交给了SYCL内部的策略比如 default_selector selector; queue q(selector); std::cout”Device: “q.get_device().get_infoinfo::device::name()std::endl; queue对象用于CPU和GPU信息交换 举一个handle对象调用parallel_for的例子 h.parallel_for(range1(1024),[](id1idx){ //PASS }); range对象用于描述设备端计算的范围id对象用于描述kernel在并行空间中的某个实例item对象和id的区别是在计算中可以显示更多细节 SYCL执行过程中主机端在递交给设备端计算任务之后可以计算去执行下面的事情 参考资料 1.http://t.csdnimg.cn/PNw2x 2.其它大部分内容是网上碎片化查找收集后进行的自我总结部分图片侵权删
http://www.tj-hxxt.cn/news/221166.html

相关文章:

  • 网站开发简述100个最好的微信小程序
  • 襄阳谷城网站建设免费seo软件推荐
  • 淘宝内部卷怎么做网站商务邮箱注册
  • 做试卷的网站编程一小时网站
  • 西安外贸网站建设wordpress邮件发送类
  • 自己如何制作一个网页seo软件开发
  • 自己做网站需要多少资金wordpress菜单手机显示下拉
  • 怎么看网站用什么平台做的网页设计项目模板代码
  • 消防网站建设的风格项目立项流程
  • 网站建设公司排行百度怎样做网站
  • 访问自己做的网站中石化工建设宁波分公司网站
  • 沣东新城开发建设集团有限公司网站xampp如何安装wordpress
  • 如何攻击Wordpress站点嵊州网站
  • 宁夏住房城乡建设厅网站青柠影院免费观看电视剧高清
  • 门户网站建设报告wordpress 前台插件
  • 婚纱摄影手机网站模板win10怎么删除2345网址导航
  • 产品销售类网站 模板ppt模板免费素材
  • 高端建站和普通建站有哪些不同网站欣赏公司网站案例
  • 做一些购物网站如何通过网站后台修改网站
  • 福建省建设系统网站icp备案综合查询网站
  • 厦门网站制作公司如何申请营业执照
  • 免费文档模板素材网站angularjs 做团购网站
  • php网站制作实例教程wordpress调用文章缩略图
  • 常州二建建设有限公司官方网站网站域名到期如何续费
  • 河东苏州网站建设宝塔面板加wordpress
  • 超低价的锦州网站建设天猫网站建设的目标是什么
  • 众网站ppt超链接至网站怎么做
  • 科技公司网站模板下载保定全员核酸检测
  • 网站轮播图制作漳州违法建设举报网站
  • 网站导航栏下拉菜单企业做推广哪些网站比较好