рдирдорд╕реНрдХрд╛рд░, рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╕рдордп __ini__.py (Python3.8) рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред
рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╣рд▓ рдорд┐рд▓ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБред
# We usually use madvise hugepages support, but on some old kernels it
# is slow and thus better avoided.
# Specifically kernel version 4.6 had a bug fix which probably fixed this:
# https://github.com/torvalds/linux/commit/7cf91a98e607c2f935dbcc177d70011e95b8faff
import os
use_hugepage = os.environ.get("NUMPY_MADVISE_HUGEPAGE", None)
if sys.platform == "linux" and use_hugepage is None:
use_hugepage = 1
kernel_version = os.uname().release.split(".")[:2]
kernel_version = tuple(int(v) for v in kernel_version)
if kernel_version < (4, 6):
use_hugepage = 0
elif use_hugepage is None:
# This is not Linux, so it should not matter, just enable anyway
use_hugepage = 1
else:
use_hugepage = int(use_hugepage)
# Note that this will currently only make a difference on Linux
core.multiarray._set_madvise_hugepage(use_hugepage)
# usr\local\lib\python3.8\site-packages\numpy\__init__.py
#python3.8 test.py
['4', '19-ovh-xxxx-std-ipv6-64']
Traceback (most recent call last):
File "test.py", line 4, in <module>
kernel_version = tuple(int(v) for v in kernel_version)
File "test.py", line 4, in <genexpr>
kernel_version = tuple(int(v) for v in kernel_version)
ValueError: invalid literal for int() with base 10: '19-ovh-xxxx-std-ipv6-64'
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рд╣реИ:
python
kernel_version = tuple(int(v[0:2]) for v in kernel_version)
int (v [0: 2] )
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ INT рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдЯрддреЗ рд╣реИрдВред
рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ OVH рдХреЗ рд╕рд╛рде рднреЗрдЬреЗ рдЧрдП рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред
рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдкреБрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж !
рд╣рдореНрдо, рдореЗрд░реА рддреНрд░реБрдЯрд┐, рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рд▓реВрдЬрд╝рд╡реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛?
рдУрд╣, рдлрд┐рд░ рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ (рдорд╛рдл рдХрд░рдирд╛ рдЖрдЬ рдХреА рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рдФрд░ рдЕрдзрд┐рдХ), рдпрд╣ рдПрдХ рдЕрдЬреАрдм рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдЬреЛ рдорд╛рдЗрдХреНрд░реЛ-рд░рд┐рд▓реАрдЬ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ LooseVersion
рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрд╕ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдЯрд┐рд▓рд┐рдЯреНрд╕ рдХрд╛ рдЖрдпрд╛рдд рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдПрдХ try:/except:
рдЬрд┐рд╕рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдкрд╛ рд╕рдХрд╛, @ nejib1 рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
@ anirudh2290 рдПрдХ рдкреАрдЖрд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ? рд▓рдЧрддрд╛ рд╣реИ рджреЛ рдлрд┐рдХреНрд╕ рд╣реИрдВ, рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ LooseVersion
рдХрд╛ @seberg рдЙрдкрдпреЛрдЧ рд╣реИред