普洛斯彼罗挑战,现在有更多的垃圾收集

主要观点:Matt Keeter 提出The Prospero Challenge,这对作者有吸引力,文章描述了加快其样本程序的两种小方法。
关键信息:

  • 样本程序用 Python 和 NumPy 并行计算像素,运行 40 秒,存储 60GB 矩阵,通过分析变量最后使用时间进行垃圾回收可使程序耗时 10 秒且内存不超 1GB。
  • 安装 CuPy 后用其替换 NumPy 可使程序在 GPU 上运行,1080ti 上 1024x1024 耗时 1.5 秒,2048x2048 耗时 3 秒,4096x4096 因 GPU 内存不足报错,还有提升空间。
    重要细节:
  • 程序中各种操作的代码实现,如linspacemeshgrid等的使用及各种操作符的对应功能。
  • 垃圾回收部分的代码逻辑,包括加载程序、寻找变量最后使用时间等。
  • GPU 运行时出现的内存错误及相关错误信息。
阅读 9
0 条评论