My assumption in advising Ganesh to create a new function was that there may be some people who find show_config useful. Personally I do not find it useful. If there is agreement that what matters is runtime and not build-time then we should replace the current show_config. Otherwise we should have two functions, since the lengthy output of build-time values will confuse people looking for only runtime values.

Matti


On 7/8/22 07:08, Stefan van der Walt wrote:
Hi Ganesh,

If the aim is to merge these functions (show_config/runtime) eventually, why not merge them now and avoid introducing another function into the root namespace?

Stéfan

On Sat, Aug 6, 2022, at 20:55, Ganesh Kathiresan wrote:
Hi Team,

We are planning on adding a new function called `np.show_runtime` to display the runtime information of the machine in addition to `np.show_config` which displays the build-related information. Relevant PR: ENH: Use threadpoolctl in show_runtime (a new function) #21468 <https://github.com/numpy/numpy/pull/21468>

Reasons for new function:
1. Will be helpful in root-causing issuing with information from the acceleration frameworks.
2. Build time information alone is not always helpful [1]

Sample Output of new function
>>> np.show_runtime() [{'simd_extensions': {'baseline': ['SSE', 'SSE2', 'SSE3'], 'found': ['SSSE3', 'SSE41', 'POPCNT', 'SSE42', 'AVX', 'F16C', 'FMA3', 'AVX2'], 'not_found': ['AVX512F', 'AVX512CD', 'AVX512_KNL', 'AVX512_KNM', 'AVX512_SKX', 'AVX512_CLX', 'AVX512_CNL', 'AVX512_ICL']}}, {'architecture': 'Zen', 'filepath': '/usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so <http://libopenblasp-r0.3.20.so>', 'internal_api': 'openblas', 'num_threads': 12, 'prefix': 'libopenblas', 'threading_layer': 'pthreads', 'user_api': 'blas', 'version': '0.3.20'}]
Under the hood
`np.show_runtime` will use `threadpoolctl` [2] to get the runtime information of the frameworks. In addition to this, we will also display useful SIMD extensions that are supported.

Future Scope
1. When we move towards meson, we can leverage the additional information and revamp `np.show_config` to utilize it. 2. If needed, we can gradually merge `show_runtime` and `show_config` to display information in sections and various other formats.

Please do let us know if you have any suggestions on improving this function or concerns about the information provided by the new function.

Thanks,
Ganesh

[1] show_config displays useless info when installed through conda-forge channel <https://github.com/numpy/numpy/issues/14492> (#14492)
[2] threadpoolctl <https://pypi.org/project/threadpoolctl/>

_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: matti.pi...@gmail.com
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to