Có vẻ như không ai trả lời trong một thời gian. Để bắt đầu cuộc trò chuyện một lần nữa, chỉ cần hỏi một câu hỏi mới.
Xin chào, người dùng M1
Tôi đang điều hành một khóa đào tạo học máy trong Jupyter Notebook, và gần đây chỉ xem xét màn hình hoạt động và thấy rằng Python3.8 không chạy tự nhiên trên M1.
Tôi sợ rằng điều này có thể làm chậm khóa đào tạo của tôi. Vì vậy, làm thế nào tôi có thể định cấu hình hệ thống của mình để làm cho nó chạy trên M1 thay thế?
MacBook
Đăng vào ngày 3 tháng 3 năm 2021 8:27 sáng
3 câu trả lời
Ngày 3 tháng 3 năm 2021 8:30 sáng để đáp lại Wirachlee Để chạy tự nhiên, Python 3.8 đó sẽ cần được biên dịch thành ARM64 với các công cụ phát triển của Apple trên M1 Mac. Ngày 3 tháng 3 năm 2021 8:59 AM để đáp lại Wirachlee Không. Các nhị phân phổ quát [Intel/ARM64] đầu tiên từ Python.org chỉ có sẵn bắt đầu với Python 3.9.1. Cố gắng xây dựng Python từ các nguồn đòi hỏi một số phụ thuộc khác và không phải là thứ tôi khuyên bạn nên thực hiện.
- of1 1
Python 3.8 không chạy tự nhiên trên kiến trúc M1
Tôi đã tìm ra một giải pháp giải pháp - Cách cài đặt Numpy trên M1 Max, với hiệu suất tăng tốc nhất [Apple's Veclib]? Đây là câu trả lời kể từ ngày 6 tháng 12 năm 2021.
Vì vậy, Python của bạn được chạy tự nhiên trên ARM64, không được dịch qua Rosseta.
- Tải xuống miniforge3-macosx-arm64.sh, sau đó
- Chạy tập lệnh, sau đó mở một shell khác
$ bash Miniforge3-MacOSX-arm64.sh
- Tạo một môi trường [ở đây tôi sử dụng tên
1]$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
$ conda create -n np_veclib python=3.9
$ conda activate np_veclib
- Để biên dịch
2, trước tiên cần cài đặt$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
3 và$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
4:$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
$ conda install cython pybind11
- Biên dịch
2 BY [Cảm ơn câu trả lời của Marijn] - Đừng sử dụng$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
6!Marijn's answer] - don't use$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
6!$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
$ pip install --no-binary :all: --no-use-pep517 numpy
- Một giải pháp thay thế của 2. là xây dựng từ nguồn
$ git clone //github.com/numpy/numpy
$ cd numpy
$ cp site.cfg.example site.cfg
$ nano site.cfg
Chỉnh sửa bản sao
$ conda create -n np_veclib python=3.9
$ conda activate np_veclib
7: Thêm các dòng sau:[accelerate]
libraries = Accelerate, vecLib
Sau đó xây dựng và cài đặt:
$ NPY_LAPACK_ORDER=accelerate python setup.py build
$ python setup.py install
- Sau khi 2 hoặc 3, bây giờ hãy kiểm tra xem Numpy có sử dụng veclib hay không:
>>> import numpy
>>> numpy.show_config[]
Sau đó, thông tin như
$ conda create -n np_veclib python=3.9
$ conda activate np_veclib
8 nên được in.Thực hiện các gói nhận dạng Conda được cài đặt bởi PIP
conda config --set pip_interop_enabled true
Điều này phải được thực hiện, nếu không nếu ví dụ:
$ conda create -n np_veclib python=3.9
$ conda activate np_veclib
9, sau đó $ conda create -n np_veclib python=3.9
$ conda activate np_veclib
2 sẽ nằm trong danh sách $ conda install cython pybind11
1 và được cài đặt lại. Nhưng cái được cài đặt mới là từ kênh $ conda install cython pybind11
2 và chậm.Ngoại trừ cái tối ưu ở trên, tôi cũng đã thử một số cài đặt khác
- A.
3:$ conda install cython pybind11
4$ conda install cython pybind11
- B.
5:$ conda install cython pybind11
6$ conda install cython pybind11
- C.
7:$ conda install cython pybind11
8$ conda install cython pybind11
Các tùy chọn ABC trên được cài đặt trực tiếp từ Channel Conda-Forge.
$ conda install cython pybind11
9 sẽ hiển thị kết quả giống hệt nhau. Để xem sự khác biệt, hãy kiểm tra bằng $ pip install --no-binary :all: --no-use-pep517 numpy
0 - ví dụ: Các gói $ pip install --no-binary :all: --no-use-pep517 numpy
1 được cài đặt trong B. Lưu ý rằng $ pip install --no-binary :all: --no-use-pep517 numpy
2 hoặc $ pip install --no-binary :all: --no-use-pep517 numpy
3 không được hỗ trợ trên ARM64.- D.
4: Cài đặt OpenBlas đầu tiên bằng$ pip install --no-binary :all: --no-use-pep517 numpy
5. Sau đó thêm đường dẫn$ pip install --no-binary :all: --no-use-pep517 numpy
6$ pip install --no-binary :all: --no-use-pep517 numpy
7 vào$ pip install --no-binary :all: --no-use-pep517 numpy
7 và xây dựng Numpy từ nguồn.$ conda create -n np_veclib python=3.9 $ conda activate np_veclib
9 và$ pip install --no-binary :all: --no-use-pep517 numpy
0 trong bài viết này.$ git clone //github.com/numpy/numpy $ cd numpy $ cp site.cfg.example site.cfg $ nano site.cfg
- Old
1 2cores của tôi trên MacBook Pro 2016 13in.$ git clone //github.com/numpy/numpy $ cd numpy $ cp site.cfg.example site.cfg $ nano site.cfg
Ở đây tôi sử dụng hai điểm chuẩn:
2: Phân hủy SVD của tôi$ git clone //github.com/numpy/numpy $ cd numpy $ cp site.cfg.example site.cfg $ nano site.cfg
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']
3: Một kịch bản điểm chuẩn của Dario Radečić tại bài viết trên.$ git clone //github.com/numpy/numpy $ cd numpy $ cp site.cfg.example site.cfg $ nano site.cfg
$ conda create -n np_veclib python=3.9
$ conda activate np_veclib
0