以下是对实现向量化的核心工作及原理的简单介绍。
1.实现向量化的核心工作
向量化执行框架:为了让当前的执行器逻辑兼容向量化执行,需要考 虑如何生成向量化计划,如何执行向量化计划,以及如何支持向量化 执行和非向量化执行共存等。
向量化数据结构:为了更好地发挥向量化执行的计算加速的作用,需 要合理设计向量的内存组织形式。
向量化算子实现:为了适应一次处理一组元组的执行方式,需要调整 原有算子的实现。
向量化函数实现:与向量化算子实现类似,向量化函数实现也要做相 应的调整。

2.原理
向量化模型每次next调用返回的是一组元组,这样就可以将函数调用的 代价均摊到多个元组上,从而减少总体函数调用次数。另外,算子内部 实现或者计算函数实现可以使用更加高效的方式循环处理一组元组,比 如使用编译器自动循环展开或者手动编写SIMD指令等方式。 需要注意的是,在实际的计算中往往执行的是在特定类型的列向量上的 简单计算,连续的数据可以完全放入到cache中,计算过程中没有数据 依赖以及条件分支,这样就可以充分发挥CPU乱序执行的能力,减少数 据和指令的cache miss,从而将CPU硬件的能力充分释放。
