Rate This Document
Findability
Accuracy
Completeness
Readability

Migrating a Short Vector Math Library (SVML)

Replaceability

Intel Short Vector Math Library (Intel SVML) is an automatic vectorization interface provided by Intel for the compiler. It converts one pair of scalar operations into parallel processing of multiple pairs of vector operations, which is an optimization of scalar operations by the compiler. The Intel SVML interface is not provided for users. KML_SVML provides 30 interfaces for the compiler. For details, see Table 1.

Table 1 Compiler vectorization interfaces

SVML Interface

MATH Interface

Description

__svml_sin?

__svml_sinf?

_ZGVnN2v_sin

_ZGVnN4v_sinf

Sine function

__svml_cos?

__svml_cosf?

_ZGVnN2v_cos

_ZGVnN4v_cosf

Cosine function

__svml_tan?

__svml_tanf?

_ZGVnN2v_tan

_ZGVnN4v_tanf

Tangent function

__svml_atan?

__svml_atanf?

_ZGVnN2v_atan

_ZGVnN4v_atanf

Arctangent function

__svml_atan2?

__svml_atan2f?

_ZGVnN2vv_atan2

_ZGVnN4vv_atan2f

Arctangent value of src1 or src2

__svml_sinh?

__svml_sinhf?

_ZGVnN2v_sinh

_ZGVnN4v_sinhf

Hyperbolic sine function

__svml_cosh?

__svml_coshf?

_ZGVnN2v_cosh

_ZGVnN4v_coshf

Hyperbolic cosine function

__svml_tanh?

__svml_tanhf?

_ZGVnN2v_tanh

_ZGVnN4v_tanhf

Hyperbolic tangent function

__svml_exp?

__svml_expf?

_ZGVnN2v_exp

_ZGVnN4v_expf

Exponential function (base e)

__svml_exp2?

__svml_exp2f?

_ZGVnN2v_exp2

_ZGVnN4v_exp2f

Exponential function (base 2)

__svml_expm1?

__svml_expm1f?

_ZGVnN2v_expm1

_ZGVnN4v_expm1f

Exponential minus one (base e)

__svml_log?

__svml_logf?

_ZGVnN2v_log

_ZGVnN4v_logf

Logarithmic function (base e)

__svml_log10?

__svml_log10f?

_ZGVnN2v_log10

_ZGVnN4v_log10f

Logarithm function (base 10)

__svml_log1p?

__svml_log1pf?

_ZGVnN2v_log1p

_ZGVnN4v_log1pf

Logarithmic function (base e) of (1 + x)

__svml_pow?

__svml_powf?

_ZGVnN2vv_pow

_ZGVnN4vv_powf

Power function

Using GCC for Compilation

For details about how to enable GCC automatic vectorization, see "Kunpeng Math Library Developer Guide" > "Basic Math Libraries" > "KML_SVML Library Functions" > "Compiler Automatic Vectorization" > "GCC Vectorization" in Kunpeng HPCKit 26.1.RC1 Developer Guide.

Using the BiSheng Compiler for Compilation

For details about how to enable automatic vectorization of the BiSheng Compiler, see "Kunpeng Math Library Developer Guide" > "Basic Math Libraries" > "KML_SVML Library Functions" > "Compiler Automatic Vectorization" > "BiSheng Compiler Vectorization" in Kunpeng HPCKit 26.1.RC1 Developer Guide.