"基于GCC开发异构处理器编程插件" 本文旨在基于GCC开发异构处理器编程插件,旨在解决神威超级计算机所使用的申威众核处理器编程困难的问题。该处理器具有异构特征,主从核指令集不同,主从核交互接口类似 OpenCL,启动从核程序需要手动打包参数、处理数据格式问题等。 为了解决这些问题,需要对语言进行扩展,合并主核和从核代码,由编译器进行拆分。通过基于 GCC extension 实现 C/C++ 基础上的语言扩展,解决编程模型的问题。同时,通过插件实现一个过滤机制,实现一个函数可以同时是 slave 或 host 的,利用插件实现一个过滤机制,实现编译时的选择。 在插件中添加三个 attribute:__attribute((kernel))、__attribute((slave)) 和 __attribute((host)),用于标注从核入口函数、常规从核函数和主核函数。利用这些 attribute,可以实现编译时的选择,选择是否编译为主核代码或从核代码。 在实现中,需要解决标准库和申威主从交互库的可用性问题。通过pragma directives,可以修改头文件,实现标准库和申威主从交互库的可用性。 通过 GCC plugin API,实现自定义 attribute、pragma 及代码生成与变换。GCC plugin API 提供了一些功能,可以实现插件的开发。 在开发中,需要了解 GCC 的内部机制,了解 GCC 的编译过程和插件机制。同时,需要了解 Linux kernel 中的 GCC 实现,了解 GCC 的应用场景。 本文旨在解决神威超级计算机所使用的申威众核处理器编程困难的问题,通过基于 GCC extension 实现 C/C++ 基础上的语言扩展,解决编程模型的问题。同时,通过插件实现一个过滤机制,实现编译时的选择,解决标准库和申威主从交互库的可用性问题。 本文还提供了一些开发经验和 GCC Internal 的斗智斗勇,帮助开发者更好地了解 GCC 的内部机制和应用场景。 通过本文,开发者可以了解基于 GCC 的异构处理器编程插件的开发,了解 GCC 的内部机制和应用场景,解决神威超级计算机所使用的申威众核处理器编程困难的问题。
剩余17页未读,继续阅读
- 粉丝: 370
- 资源: 6423
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助