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

狐表做网站优秀学校网站设计

狐表做网站,优秀学校网站设计,好心人给个地址吧,厦门网站推广优化哪家好接上篇文章#xff0c;可以发现使用CUDA提供的API进行前缀和扫描时#xff0c;第一次运行的时间不如共享内存访问#xff0c;猜测是使用到了全局内存。 首先看调用逻辑#xff1a; thrust::inclusive_scan(thrust::device, d_x, d_x N, d_x);第一个参数指定了设备#x…接上篇文章可以发现使用CUDA提供的API进行前缀和扫描时第一次运行的时间不如共享内存访问猜测是使用到了全局内存。 首先看调用逻辑 thrust::inclusive_scan(thrust::device, d_x, d_x N, d_x);第一个参数指定了设备根据实参数量和类型找到对应的函数是scan.h中的如下函数 template typename DerivedPolicy, typename InputIterator, typename OutputIterator _CCCL_HOST_DEVICE OutputIterator inclusive_scan(const thrust::detail::execution_policy_baseDerivedPolicy exec,InputIterator first,InputIterator last,OutputIterator result); 其实现位于thrust\thrust\system\cuda\detail\scan.h 注意路径可能与实际有偏差可以在/usr/local/下使用find . -name xx查找对应的文件 template typename Derived, typename InputIt, typename OutputIt _CCCL_HOST_DEVICE OutputIt inclusive_scan(thrust::cuda_cub::execution_policyDerived policy, InputIt first, InputIt last, OutputIt result) {return thrust::cuda_cub::inclusive_scan(policy, first, last, result, thrust::plus{}); }将操作指定为plus 然后执行同一文件下的此函数 template typename Derived, typename InputIt, typename OutputIt, typename ScanOp _CCCL_HOST_DEVICE OutputIt inclusive_scan(thrust::cuda_cub::execution_policyDerived policy, InputIt first, InputIt last, OutputIt result, ScanOp scan_op) {using diff_t typename thrust::iterator_traitsInputIt::difference_type;diff_t const num_items thrust::distance(first, last);return thrust::cuda_cub::inclusive_scan_n(policy, first, num_items, result, scan_op); }最终找到主要的执行逻辑 _CCCL_EXEC_CHECK_DISABLE template typename Derived, typename InputIt, typename Size, typename OutputIt, typename ScanOp _CCCL_HOST_DEVICE OutputIt inclusive_scan_n_impl(thrust::cuda_cub::execution_policyDerived policy, InputIt first, Size num_items, OutputIt result, ScanOp scan_op) {using AccumT typename thrust::iterator_traitsInputIt::value_type;using Dispatch32 cub::DispatchScanInputIt, OutputIt, ScanOp, cub::NullType, std::int32_t, AccumT;using Dispatch64 cub::DispatchScanInputIt, OutputIt, ScanOp, cub::NullType, std::int64_t, AccumT;cudaStream_t stream thrust::cuda_cub::stream(policy);cudaError_t status;// Determine temporary storage requirements:size_t tmp_size 0;{THRUST_INDEX_TYPE_DISPATCH2(status,Dispatch32::Dispatch,Dispatch64::Dispatch,num_items,(nullptr, tmp_size, first, result, scan_op, cub::NullType{}, num_items_fixed, stream));thrust::cuda_cub::throw_on_error(status,after determining tmp storage requirements for inclusive_scan);}// Run scan:{// Allocate temporary storage:thrust::detail::temporary_arraystd::uint8_t, Derived tmp{policy, tmp_size};THRUST_INDEX_TYPE_DISPATCH2(status,Dispatch32::Dispatch,Dispatch64::Dispatch,num_items,(tmp.data().get(), tmp_size, first, result, scan_op, cub::NullType{}, num_items_fixed, stream));thrust::cuda_cub::throw_on_error(status, after dispatching inclusive_scan kernel);thrust::cuda_cub::throw_on_error(thrust::cuda_cub::synchronize_optional(policy), inclusive_scan failed to synchronize);}return result num_items; }可以看到此处thrust调用了cub的Dispatchscan操作而cub中是使用全局内存的因此造成了效率还不如手动编写使用共享内存的算法。
http://www.w-s-a.com/news/775989/

相关文章:

  • 深圳企业网站建设推广服务php做的商城网站设计论文
  • 韩雪冬网站手机网站开发 宽度
  • 奉贤专业做网站新手怎么做企业网站
  • 做网站用哪几个端口 比较好手机号网站源码
  • 手机免费代理ip网站那个旅游网站做攻略最好
  • 西安做网站找哪家公司好苏州专业网站建设开发
  • dedecms如何做网站网站设计实施方案
  • 网站建设合约品牌设计有哪些
  • 织梦企业门户网站宝塔搭建wordpress网站
  • 网站为什么没有排名了11月将现新冠感染高峰
  • 网站开发维护专员岗位职责辽阳企业网站建设
  • 做外国订单有什么网站网站设计论文提纲
  • 商城网站建设报价方案导师让做网站
  • 清远市企业网站seo联系方式动易官方网站
  • 手机上怎么做能打开的网站一级域名和二级域名跨域
  • 网站首页效果图wordpress 在线教育
  • 电商网站开发团队广西桂林商贸旅游技工学校
  • 网站模板文件怎么下载东莞常平镇邮政编码
  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强
  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典
  • 导航网站设计方案个人网站推广方法