首页> 外文期刊>Journal of supercomputing >CU++: an object oriented framework for computational fluid dynamics applications using graphics processing units
【24h】

CU++: an object oriented framework for computational fluid dynamics applications using graphics processing units

机译:CU ++:使用图形处理单元的面向对象的框架,用于计算流体动力学应用

获取原文
获取原文并翻译 | 示例
       

摘要

The application of graphics processing units (GPU) to solve partial differential equations is gaining popularity with the advent of improved computer hardware. Various lower level interfaces exist that allow the user to access GPU specific functions. One such interface is NVIDIA'S Compute Unified Device Architecture (CUDA) library. However, porting existing codes to run on the GPU requires the user to write kernels that execute on multiple cores, in the form of Single Instruction Multiple Data (SIMD). In the present work, a higher level framework, termed CU++, has been developed that uses object oriented programming techniques available in C++ such as polymorphism, operator overloading, and template meta programming. Using this approach, CUDA kernels can be generated automatically during compile time. Briefly, CU++ allows a code developer with just C/C++ knowledge to write computer programs that will execute on the GPU without any knowledge of specific programming techniques in CUDA. This approach is tremendously beneficial for Computational Fluid Dynamics (CFD) code development because it mitigates the necessity of creating hundreds of GPU kernels for various purposes. In its current form, CU++ provides a framework for parallel array arithmetic, simplified data structures to interface with the GPU, and smart array indexing. An implementation of heterogeneous parallelism, i.e., utilizing multiple GPUs to simultaneously process a partitioned grid system with communication at the interfaces using Message Passing Interface (MPI) has been developed and tested.
机译:随着改进的计算机硬件的出现,将图形处理单元(GPU)应用于求解偏微分方程的应用越来越受欢迎。存在各种较低级别的接口,这些接口允许用户访问GPU特定的功能。 NVIDIA的Compute Unified Device Architecture(CUDA)库就是其中一种。但是,移植现有代码以在GPU上运行需要用户编写以单指令多数据(SIMD)形式在多核上执行的内核。在当前的工作中,已经开发了一个高级框架,称为CU ++,它使用C ++中可用的面向对象的编程技术,例如多态性,运算符重载和模板元编程。使用这种方法,可以在编译期间自动生成CUDA内核。简而言之,CU ++允许仅具有C / C ++知识的代码开发人员编写将在GPU上执行的计算机程序,而无需了解CUDA中的特定编程技术。这种方法对计算流体力学(CFD)代码开发非常有益,因为它减轻了为各种目的而创建数百个GPU内核的必要性。 CU ++以其当前形式提供了用于并行数组算术,简化的数据结构以与GPU交互以及智能数组索引的框架。已经开发并测试了异构并行性的实现方式,即利用多个GPU同时处理分区网格系统并使用消息传递接口(MPI)在接口处进行通信。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号