找回密码
 立即注册
查看: 298|回复: 7

第一届九坤并行程序优化大赛总结

[复制链接]
发表于 2022-2-3 19:21 | 显示全部楼层 |阅读模式
原文链接

背景

2021 年 9 月,量化头部公司九坤举办了其第一届并行程序优化大赛,相关介绍可参考推送。赛题如下:


赛题是 C/C++ 的 codebase,然而我与一起组队的两位同学基本都对 C/C++ 不太熟悉,于是我们起名叫做了"只会 JAVA 队"。作为三个在体系结构几乎一窍不通的小白,在一个多月断断续续的不到 10 次线下沟通中,我们逐渐对体系结构入了门,在 192 个队伍脱颖而出,并在决赛取得了第 4 名的成绩(PS:离苹果周边只差一步真的好可惜),具体可以参考总结推送。



这里简单做一总结,贴一些当前的资料和想法,以备之后回忆和反思。
赛题

第一题

在深度学习中,卷积操作在神经网络中扮演了重要的作用。2015 年,Andrew Lavin 等人提出了快速计算卷积的算法 Winograd,通过降低计算复杂度,相比直接卷积的算法提升 4 倍效率,成为了深度学习中非常重要的一个算法。本次比赛的第一题就是优化 Winograd 算法。各参赛队的通过优化比赛方给出的 Winograd 算法代码,缩短其运行时间,提升该算法时间的每秒浮点计算次数(FLOPS)。
第二题

金融数据是真正的“大数据”。每天市场上的交易会产生海量的数据,这些数据对于预测未来市场走势只非常重要。因此负责高速储存、读取这些数据的 IO 系统成为了行业内重要的一环。目前金融数据中常用 HDF5 文件系统库进行大规模的数据存储。本次比赛第二题要求各参赛队探索 HDF5 文件系统,通过一个跑分程序 h5bench 来完成 IO 系统的性能研究和调优。
代码 & 文档


从赛题可以看到,此两题能够检验选手最大化压榨 CPU 和 IO 性能的能力。

有关赛题的代码和文档均已开源,可移步 Github 查看。欢迎交流~
此外,在此处简单列举一下我们组在两个题目上的学习资料,希望能对大家有帮助。
第一题:

  • SIMD 简介
  • AVX / AVX2 指令编程
  • 为什么向量化计算会这么快?
  • 高性能深度学习的编译优化
  • 卷积神经网络中的 Winograd 快速卷积算法
  • 优化 CPU 矩阵乘法
  • 矩阵运算库在性能上区别大吗?
  • NCNN
  • FeatherCNN
  • Optimization of Spatial Convolution in ConvNets on Intel KNL
  • Winconv
  • Fast Algorithms for Convolutional Neural Networks
  • Sparse Winograd Convolutional neural networks on small-scale systolic arrays
  • Perf
第二题:

  • h5bench: HDF5 IO Kernel Suite for Exercising HPC IO Patterns
  • On Implementing MPI-IO Portably and with High Performance
  • h5bench
  • hdf5
总结

就 CPU 题目而言,我们此次尝试了以下优化和工具:

  • 算法优化:winograd4x3-3D
  • 指令级并行:循环展开,分支预测
  • 数据级并行:AVX128,256,512
  • 线程级并行:OPENMP
  • 编译器:尝试 gcc 不同版本,对比 llvm
  • 内存排布:36*STRIDE
  • 冒险尝试:merge_array
  • Profiling:perf

其实这里有好多思想都已经在数据库领域存在了。比如向量化引擎,比如 codegen 的 llvm 优化,比如对 cache 友好的 push 查询引擎等等。

个人认为,数据库做到极致便是对硬件性能的一种体现。因此,一个优秀的数据库工程师应该对体系结构具有一定的了解,这样才有可能进一步压榨硬件性能,从而达到更好的数据库性能。

一直以来,我希望分布式数据库能够成为自己的一个标签。通过这次比赛,我意识到高性能计算也是一个很有趣且硬核的方向,其不仅能够给企业迅速带来真金白银的收益(节约成本),而且也是很多领域做到极致的一种出路。

希望未来还能有契机去进一步深挖此方向吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-2-3 19:24 | 显示全部楼层
作为比赛组织者看到这么认真的总结,给你点赞
发表于 2022-2-3 19:30 | 显示全部楼层
感谢组织方[赞]
发表于 2022-2-3 19:32 | 显示全部楼层
[捂脸]这题不会是凯亮出的吧...
发表于 2022-2-3 19:33 | 显示全部楼层
这个得奖了是不是可以进九坤工作呀?
发表于 2022-2-3 19:42 | 显示全部楼层
俺只是入了个门,九坤的工程师都是 HPC 的大佬,俺不配[大哭]
发表于 2022-2-3 19:46 | 显示全部楼层
哈哈不知是哪位大佬[惊喜]
发表于 2022-2-3 19:47 | 显示全部楼层
哼~╯^╰
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 19:26 , Processed in 0.124413 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表