.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/kernels/plot_abs_simd.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_kernels_plot_abs_simd.py: Runtime SIMD detection ====================== This example reports the SIMD level selected by ``onnx-light-cpu``. The Python extension exposes only status helpers here; optimized ONNX operators are used through onnx-light registration in integration builds. .. GENERATED FROM PYTHON SOURCE LINES 11-16 Setup ----- Import the SIMD status helpers. The mapping is ``0=None``, ``1=SSE2``, ``2=AVX``, ``3=AVX2`` and ``4=AVX512``. .. GENERATED FROM PYTHON SOURCE LINES 16-34 .. code-block:: Python import numpy as np from onnx_light_cpu import SimdLevel, detect_simd_level, has_cpu_kernels _SIMD_NAMES = { SimdLevel.NONE: "scalar", SimdLevel.SSE2: "SSE2", SimdLevel.AVX: "AVX", SimdLevel.AVX2: "AVX2", SimdLevel.AVX512: "AVX-512", } assert has_cpu_kernels() level = detect_simd_level() simd_name = _SIMD_NAMES.get(level, level) print(f"CPU kernels available, SIMD level: {level} ({simd_name})") .. rst-class:: sphx-glr-script-out .. code-block:: none CPU kernels available, SIMD level: 4 (AVX-512) .. GENERATED FROM PYTHON SOURCE LINES 35-40 Illustrate Abs with NumPy ------------------------- The numpy curve below is only an illustration of the ``Abs`` operation. It does not call any removed Python kernel binding. .. GENERATED FROM PYTHON SOURCE LINES 40-66 .. code-block:: Python import matplotlib.pyplot as plt x = np.linspace(-5.0, 5.0, 201, dtype=np.float32) y = np.abs(x) fig, (ax_level, ax_abs) = plt.subplots(1, 2, figsize=(10, 4)) ax_level.bar([simd_name], [level], color="#4a9eff") ax_level.set_ylim(0, 4) ax_level.set_ylabel("SIMD level") ax_level.set_title("Detected onnx-light-cpu SIMD") ax_level.text(0, level + 0.1, str(level), ha="center", va="bottom") ax_abs.plot(x, x, label="input", linestyle="--", color="#9b7ec8") ax_abs.plot(x, y, label="numpy.abs(input)", color="#4a9eff") ax_abs.axhline(0.0, color="black", linewidth=0.8) ax_abs.axvline(0.0, color="black", linewidth=0.8) ax_abs.set_title("Abs operation illustration") ax_abs.set_xlabel("input") ax_abs.set_ylabel("output") ax_abs.legend() fig.tight_layout() fig.savefig("plot_abs_simd.png") plt.show() .. image-sg:: /auto_examples/kernels/images/sphx_glr_plot_abs_simd_001.png :alt: Detected onnx-light-cpu SIMD, Abs operation illustration :srcset: /auto_examples/kernels/images/sphx_glr_plot_abs_simd_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.213 seconds) .. _sphx_glr_download_auto_examples_kernels_plot_abs_simd.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_abs_simd.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_abs_simd.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_abs_simd.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_