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

怎样用dw做新闻发布网站最近刚发生的新闻

怎样用dw做新闻发布网站,最近刚发生的新闻,深圳公司的网站设计,wordpress优化打开速度插件接上篇文章,可以发现使用CUDA提供的API进行前缀和扫描时,第一次运行的时间不如共享内存访问,猜测是使用到了全局内存。 首先看调用逻辑: 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_base<DerivedPolicy>& 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_policy<Derived>& 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_policy<Derived>& policy, InputIt first, InputIt last, OutputIt result, ScanOp scan_op)
{using diff_t           = typename thrust::iterator_traits<InputIt>::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_policy<Derived>& policy, InputIt first, Size num_items, OutputIt result, ScanOp scan_op)
{using AccumT     = typename thrust::iterator_traits<InputIt>::value_type;using Dispatch32 = cub::DispatchScan<InputIt, OutputIt, ScanOp, cub::NullType, std::int32_t, AccumT>;using Dispatch64 = cub::DispatchScan<InputIt, 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_array<std::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.ds6.com.cn/news/108223.html

相关文章:

  • dede学校网站免费源码进入百度知道首页
  • 网站静态页面做网站营销广告
  • 网站制作网站网站黄页推广软件
  • 阿里云的云服务器做网站用哪种南昌seo公司
  • 龙华附近网站建设进行优化
  • 专科网站开发就业方向外贸软件
  • 盘锦网站建设热线电话宁波seo博客
  • 谷歌网站地图提交爱站网是什么
  • 自己做的电影网站犯法吗设计公司排名
  • 成都网站建设外包公司聚名网官网登录
  • 网站建设课百度快照没有了用什么代替了
  • 上海市建设安全协会成绩查询的网站泉州seo网站排名
  • 安平谁做网站好武汉关键词排名提升
  • 可以做幻灯片的网站爱站站长工具
  • 顺的网站建设要多少钱搜索推广公司
  • wordpress网站会员太多搜索图片识别
  • 电商网站运营排名网
  • muse cc 做网站搜狗引擎搜索
  • 免费深圳企业名录济南seo外包公司
  • 国内新冠最新消息短视频搜索优化
  • 网站建设学习培训自己怎么做网站网页
  • 做百度翻译英文网站站长之家备案查询
  • 软件著作权转让搜索引擎优化面对哪些困境
  • 网站建设与管理行业发展情况网站数据
  • 个人备案经营网站备案产品推广平台排行榜
  • 昆明做网站词排名优化最全bt搜索引擎入口
  • 淘宝页面设计的网站宁德市地图
  • 庆阳做网站的公司seo营销外包
  • 承德网站制作合肥网络推广外包
  • 做的最好的择日择时的网站北京seo优化