【24h】

Automatic Copying of Pointer-Based Data Structures

机译:自动复制基于指针的数据结构

获取原文
获取外文期刊封面目录资料

摘要

In systems with multiple memories, software may need to explicitly copy data from one memory location to another. This copying is required to enable access or to unlock performance, and it is especially important in heterogeneous systems. When the data includes pointers to other data, the copying process has to recursively follow the pointers to perform a deep copy of the entire data structure. It is tedious and error-prone to require users to manually program the deep copy code for each pointer-based data structure used. Instead, a compiler and runtime system can automatically handle deep copies if it can identify pointers in the data, and can determine the size and type of data pointed to by each pointer. This is possible if the language provides reflection capabilities, or uses smart pointers that encapsulate this information, e.g. Fortran pointers that intrinsically include dope vectors to describe the data pointed to. In this paper, we describe our implementation of automatic deep copy in a Fortran compiler targeting a heterogeneous system with GPUs. We measure the runtime overheads of the deep copies, propose techniques to reduce this overhead, and evaluate the efficacy of these techniques.
机译:在具有多个存储器的系统中,软件可能需要明确地将数据从一个存储器位置复制到另一个存储器位置。此复制必须启用访问或解锁性能,并且在异构系统中尤为重要。当数据包括指向其他​​数据的指针时,复制过程必须递归地遵循指针以执行整个数据结构的深度副本。令人疑惑和错误易于要求用户手动编程用于所使用的每个指针的数据结构的深度复制代码。相反,编译器和运行时系统可以自动处理深度副本,如果它可以识别数据中的指针,并且可以确定每个指针指向的数据的大小和类型。如果语言提供反射功能,或者使用封装此信息的智能指针,则可以实现这一点。本质上包括掺杂向量的Fortran指针来描述指向的数据。在本文中,我们描述了我们在旨在具有GPU的异构系统的Fortran编译器中的自动深度副本的实现。我们测量深度副本的运行时间开销,提出减少该开销的技术,并评估这些技术的功效。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号