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