Почему Numpy Native на M1 Max намного медленнее, чем на старой Intel I5?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Numpy Native на M1 Max намного медленнее, чем на старой Intel I5?

Сообщение Anonymous »

Я только что получил свой новый MacBook Pro с M1 Max Chip и настраиваю Python. Я попробовал несколько комбинационных настроек для тестирования скорости - теперь я довольно запутался. Сначала поместите мои вопросы здесь: < /p>
  • Почему Python изначально работает на M1 Max значительно (~ 100%) медленнее, чем на моем старом Macbook Pro 2016 с Intel i5? < /Li>
    На M1 Max, почему не существует разница между ними (на минифорде), и начнусь, и которая не будет, и которая не будет, и которая будет более сильной (по -прежнему), и которая не будет рано ~ 20%? /> < /ul>
    Доказательства, подтверждающие мои вопросы, следующие: < /p>

    Вот настройки, которые я пробовал: < /p>
    1. Python, установленного < /strong> < /p>

    miniforge-arm64, так что Python изначально работает на M1 Max Chip. (Проверьте монитор активности, kind процесса Python - Apple ).
  • anaconda. Затем Python работает через Rosseta. (Проверьте из монитора активности, kind процесса Python Is Intel ).

2. Numpy установлен в < /strong> < /p>


[*]

Код: Выделить всё

conda install numpy
: numpy из оригинального канала Conda-Forge или предварительно установленный с Anaconda. Говорят, что, установленная Numpy таким образом, оптимизирован для Apple M1 и будет быстрее. Вот команды установки: < /li>
< /ul>

Код: Выделить всё

conda install -c apple tensorflow-deps
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
< /code>
 3. Запустите < /strong> < /p>

 терминал.
[*] pycharm (версия Apple Silicon).import time
import numpy as np
np.random.seed(42)
a = np.random.uniform(size=(300, 300))
runtimes = 10

timecosts = []
for _ in range(runtimes):
s_time = time.time()
for i in range(100):
a += 1
np.linalg.svd(a)
timecosts.append(time.time() - s_time)

print(f'mean of {runtimes} runs: {np.mean(timecosts):.5f}s')
< /code>
и вот результаты: < /p>
+-----------------------------------+-----------------------+--------------------+
|   Python installed by (run on)→   | Miniforge (native M1) | Anaconda (Rosseta) |
+----------------------+------------+------------+----------+----------+---------+
| Numpy installed by ↓ | Run from → |  Terminal  |  PyCharm | Terminal | PyCharm |
+----------------------+------------+------------+----------+----------+---------+
|          Apple Tensorflow         |   4.19151  |  4.86248 |     /    |    /    |
+-----------------------------------+------------+----------+----------+---------+
|        conda install numpy        |   4.29386  |  4.98370 |  4.10029 | 4.99271 |
+-----------------------------------+------------+----------+----------+---------+
< /code>
Это довольно медленно. Для сравнения, < /p>

 Запустите тот же код на моем старом Macbook Pro 2016 с помощью I5 Chip - это стоит 2.39917s
[/b].
[*] Другой пост (но не на английском языке), которые работают с M1 Chip (не Pro или Max), miniforge+conda_installed_numpy

Код: Выделить всё

2.53214s
[/b] и miniforge+apple_tensorflow_numpy - это

Код: Выделить всё

1.00613s
[/b].
Вы также можете попробовать сами.$ sysctl -a | grep -e brand_string -e cpu.core_count
machdep.cpu.brand_string: Intel(R) Core(TM) i5-6360U CPU @ 2.00GHz
machdep.cpu.core_count: 2
< /code>

Мой новый m1 max: < /li>
< /ul>
% sysctl -a | grep -e brand_string -e cpu.core_count
machdep.cpu.brand_string: Apple M1 Max
machdep.cpu.core_count: 10
< /code>

Я следую инструкциям строго из учебных пособий - но зачем все это происходит? Это из -за моих недостатков установки или из -за M1 Max Chip? Поскольку моя работа в значительной степени зависит от местных пробежек, местная скорость очень важна для меня. Любые предложения к возможным решению или любые точки данных на вашем собственном устройстве будут очень оценены :)

Подробнее здесь: https://stackoverflow.com/questions/702 ... d-intel-i5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»