异构平台上的流应用与大规模数据集分层抽样算法
在当今的数据处理领域,如何高效处理大规模数据以及在异构平台上优化应用性能是关键问题。下面将分别介绍异构平台上应用的流处理方法和一种用于大规模数据集的分层抽样算法。
异构平台上的流应用
- 数据传输比R的影响
- R会因平台、基准测试、代码变体和输入配置的不同而变化。每个基准测试在计算和内存访问之间有独特的平衡,不同的代码变体和输入配置会导致传输数据量和内核执行时间的差异,同时R也依赖于硬件能力。
- 用户可将R作为决定目标应用是否值得流式处理的指标。当R较小时,流式处理可能会因代码流式处理带来的管道填充和清空开销,以及重构数据结构和管理流所需的额外编程工作,导致性能下降。而当R过大(如90%)时,使用加速器可能导致性能下降,更不用说使用流了。在实际应用中,用户需根据R的值和编码工作量来做出流式处理的决策。
- 流处理方法
- 分类
- 一般将应用划分为任务并映射到不同的处理核心,每个任务包含数据传输和内核执行子任务。为实现代码流水线,需确保存在并发运行的独立任务,这样可以使一个任务的H2D执行与另一个任务的KEX执行重叠。
- 基于依赖关系分析,将代码分为可流式处理和不可流式处理两类。不可流式处理的代码有两种模式:SYNC模式,即应用的所有任务共享H2D数据,需在执行内核前完成整个数据传输;Iterative模式,数据位于设备上后KEX会迭代调用,对于
- 分类
超级会员免费看
订阅专栏 解锁全文
1853

被折叠的 条评论
为什么被折叠?



