Lập trình viên giải mã lý do chip Apple M1 đạt được hiệu năng đáng nể, bật app lên luôn
Howard Oakley, một lập trình viên từng tạo ra không ít những phần mềm dành cho nền tảng macOS vừa rồi đã có một chút vọc vạch để tự mình tìm ra câu trả lời cho câu hỏi vì sao máy Mac trang bị chip M1 lại có hiệu năng ấn tượng đến thế.
Kết quả, anh phát hiện ra rằng, Apple tối ưu trải nghiệm phần mềm dựa vào tính năng Quality of Service (QoS), hay còn gọi là sắp xếp tác vụ một cách thông minh.
Về cơ bản, Intel và AMD liên tục quảng cáo sản phẩm của họ, nhấn mạnh vào hiệu năng một giây xử lý được bao nhiêu phép tính. Thực ra thì trong nhiều tình huống, ví dụ như sử dụng CPU trong trung tâm dữ liệu, thì đây là thước đo khá hiệu quả và chính xác để các doanh nghiệp biết họ cần đến giải pháp nào cho hợp lý nhất về hiệu năng và chi phí. Tuy nhiên đối với người tiêu dùng thì chẳng mấy khi để ý đến thước đo này, mà chỉ quan tâm đến việc máy chạy có “nhanh” hay không, ở đây thường đề cập tới tốc độ phản hồi khi kích hoạt một ứng dụng có mượt hay không, hay khoảng thời gian để hoàn thành một tác vụ có nhanh hay không.
Để giải đáp câu hỏi này, Oakley so sánh trực tiếp một chiếc MacBook Pro trang bị chip M1, và một chiếc Mac Pro trang bị chip Xeon 8 nhân, cả hai dùng chung một bản macOS Big Sur. Ý tưởng benchmark so sánh là để kiểm tra hai hệ thống máy tính này xử lý những tác vụ với mức độ ưu tiên khác nhau ra sao. Mặc định thì macOS tự động xác định thứ tự ưu tiên của từng tác vụ, nhưng các lập trình viên cũng có thể tự đặt thứ tự ưu tiên các tác vụ trong phần mềm họ viết theo bốn bậc tăng dần: background, utility, userInitiated và userInteractive.
Oakley sử dụng ứng dụng anh tự viết ra, Cormorant, một bộ công cụ hỗ trợ nén và giải nén dữ liệu, cho phép người dùng chỉnh thứ tự ưu tiên của tác vụ do phần mềm này xử lý. Oakley sau đó thử nghiệm nén một file nặng 10GB.
Kết quả cho thấy, trên hệ thống máy tính CPU kiến trúc x86, tác vụ nén dữ liệu được dàn đều trên cả 8 nhân chip xử lý Xeon trong trường hợp không có tác vụ hay phần mềm nào chạy song song, để việc nén dữ liệu hoàn thành trong khoảng thời gian ngắn nhất có thể, không phụ thuộc vào thứ tự ưu tiên QoS vì không có tác vụ nào xếp hàng cả. Còn trong trường hợp chạy hai tác vụ nén dữ liệu, một ưu tiên cao, một ưu tiên thấp, thì tác vụ ưu tiên thấp tốn gấp vài lần thời gian mới hoàn thành.
Trái ngược hoàn toàn, QoS trên Mac M1 xử lý khác hoàn toàn so với CPU x86. Ngay cả khi không có tác vụ nào cạnh tranh, macOS vẫn mặc định tự động xếp tác vụ nén 10GB dữ liệu vào dạng thứ tự ưu tiên thấp, chuyển cho nhân CPU tiết kiệm điện IceStorm xử lý, dẫn đến việc thời gian nén dữ liệu chậm hơn so với Xeon. Nhưng bù lại, nếu cần làm một tác vụ nào khẩn cấp hơn hoặc đòi hỏi tài nguyên máy mạnh hơn, MacBook sẽ xử lý luôn thông qua nhân CPU hiệu năng cao FireStorm.
Khi Oakley chỉnh thứ tự ưu tiên của tác vụ nén 10GB dữ liệu lên cấp độ userInitiated và userInteractive, cả 8 nhân CPU hiệu năng cao lẫn tiết kiệm điện của M1 đều được chia việc để hoàn thành nhanh nhất có thể. Khi MacBook Pro M1 được ra lệnh thực hiện thêm những tác vụ nén dữ liệu với thứ tự ưu tiên thấp, thì những tác vụ ưu tiên cao dần được chuyển hết vào 4 nhân FireStorm để xử lý. Kết quả Oakley thấy xử lý song song tất cả các tác vụ thử nghiệm cũng tốn khoảng thời gian y hệt như xử lý lần lượt.
Nói một cách dễ hiểu hơn, với M1, Apple tối ưu xử lý tác vụ hệt như cách họ tối ưu phần cứng và phần mềm trên iPhone và iPad. Những tác vụ ưu tiên thấp luôn được đẩy vào nhân tiết kiệm điện, để dành tài nguyên của nhân hiệu năng cao cho những tác vụ ưu tiên cao hơn. Từ đó, đối với người dùng bình thường, không quan tâm đến những khái niệm như throughput hay IPC, nhờ vào khả năng tối ưu như thế này, “cảm giác” bật Photoshop hay Lightroom, Premiere click vào phần mềm khởi động ngay đã tạo ra cảm giác máy “mượt” hơn so với những cỗ máy Mac trang bị CPU Intel, vì trải nghiệm dùng máy phản hồi nhanh hơn rất nhiều.
Trên lý thuyết, Apple hoàn toàn có đủ khả năng để tối ưu những chiếc máy Mac trang bị CPU Intel để nó vận hành giống như Mac chạy chip M1, ví dụ như bắt một vài nhân của CPU chỉ chạy tác vụ ưu tiên thấp, và ngược lại. Điều này cũng có phần tương đồng với tư duy tích hợp dọc của Apple khi tối ưu sản phẩm của họ, nơi phần mềm được tinh chỉnh để tận dụng tối đa khả năng phần cứng.
Còn trong khi đó, cả Intel lẫn AMD đều đang rục rịch học theo kiến trúc big.LITTLE mà ARM phác thảo ra, để tạo ra những chip CPU phục vụ máy tính desktop hay laptop trong thời gian tới, trang bị cả nhân xử lý hiệu năng cao lẫn tiết kiệm điện, để chí ít là có thể phần nào đem trải nghiệm của Mac M1 sang cho người dùng Windows 10. Đối với Intel, kiến trúc Alder Lake dự kiến ra mắt cuối năm nay sẽ có cả nhân CPU hiệu năng cao Golden Cove kết hợp chung với nhân CPU tiết kiệm điện Gracemont trong cùng một con chip. Tương tự là AMD, với kiến trúc Zen 5 cũng triển khai theo bố cục tương tự.
Theo Techspot
Bạn nghĩ sao ?