使用向量化、矩阵化、cuda等不同方法加速python程序
第一次写知乎文章,本文中如有错误请不吝赐教,各位大大多多包涵。
本文是一次实验室组会的分享内容,对于机器视觉各类问题中经常需要处理大量计算任务的情况,以一个计算点云距离的例子来观察不同处理方法在python编程中对速度的影响。运行程序的电脑CPU型号:i9-9900X,GPU型号:RTX 2080 Ti ,python版本3.8.1 ,使用Jupyter lab编写。
问题描述:
在python中,使用普通方法、向量化、矩阵化、cuda等方法加速计算两组点云间各点的距离
# 初始化数据
- 普通方法
通过嵌套的循环,计算所有点的距离,距离计算公式为:
# 普通计算距离
普通计算时间: 950.3101623058319 s
common_result
- 向量化方法
将数据A以重复m次的方式扩展,数据B以复制的方式扩展,实现A中任一点对B中所有点的对应关系。即: