使用 Mathematical Acceleration Subsystem (MASS) 库
XL C/C++ 随附一组用于高性能数学计算的 Mathematical Acceleration Subsystem (MASS) 库。
MASS 库由 使用标量库, 中描述的标量 C/C++: 函数 的库组成,该库针对 使用向量库以及一组针对 使用 SIMD 库 中描述的特定体系结构调整的 SIMD 库中描述的特定体系结构调整了一组向量库。 在特定优化级别会自动调用标量库和向量库中包含的函数,但您也可以在程序中显式调用这些函数。 请注意,MASS 函数和系统库函数中的准确性和异常处理方式可能不同。
MASS 函数必须使用缺省舍入方式和浮点异常捕获设置运行。
当您使用下列任何一组选项来编译程序时:
- -qhot -qignerrno -qnostrict
- -qhot -qignerrno -qstrict=nolibrary
- -qhot -O3
- -O4
- -O5
vdnint, vdint, vcosisin, vscosisin, vqdrt, vsqdrt, vrqdrt, vsrqdrt, vpopcnt4, vpopcnt8, vexp2, vexp2m1, vsexp2, vsexp2m1, vlog2, vlog21p, vslog2和 vslog21p除外) 对系统数学函数的调用进行矢量化。 如果不能矢量化,它会自动尝试调用等效的 MASS 标量函数。 对于自动向量化或标量化,编译器使用 XLOPT 库 libxlopt.a中包含的 MASS 函数的版本。除上述任何选项集外,当 -qipa 选项生效时,如果编译器无法对其进行向量化,那么它会在决定调用 MASS 标量函数之前尝试内联这些函数。
使用 MASS 编译和链接程序 描述了如何编译和链接使用 MASS 库的程序,以及如何选择性地将 MASS 标量库函数与常规系统库配合使用。