基于DPC++编写矩阵乘法计算代码

一、实验目的

基于DPC++编写矩阵乘法计算代码 

二、实验要求

编写矩阵乘法代码实现,并编译执行

对代码进行执行时间分析,比较不同实现的效率差异

三、实验程序

https://github.com/pengzhao-intel/oneAPI_course/blob/main/code/gemm_basic.cpp

https://github.com/pengzhao-intel/oneAPI_course/blob/main/code/gemm_tile.cpp
在devcloud平台上编译执行以上两个代码

四、结果分析

CPU执行时间通过C++标准库中的<chrono>来测量具体使用了std::chrono::high_resolution_clock类来获取高精度的时间点,cpu_kernel函数中,通过获取开始时间点s和结束时间点e,并计算二者之间的时间差来得到CPU执行时间使用std::chrono::duration类计算得到CPU执行时间GPU执行时间通过SYCL库中的事件对象的get_profiling_info方法来测量,具体是通过调用事件对象的get_profiling_info方法获取GPU事件的开始和结束时间,gpu_kernel函数中,通过创建一个queue对象,并设置enable_profiling属性来启用事件的性能分析,使用sycl::queue::submit方法提交一个任务,并在任务中测量事件的执行时间,通过计算时间差command_end-command_start ,得到GPU执行时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值