Intel Arc A770 GPU: Hiệu năng AI ấn tượng trên Windows
Mục lục:
- Giới thiệu
- Cài đặt trên Windows
- Sử dụng Intel Extension for PyTorch
- Thay đổi để đo lường hiệu năng
- Llama2
- Chạy Llama2 7B trên Intel Arc A770 GPU
- Chạy Llama2 7B Chat trên Intel Arc A770 GPU
- Llama3
- Chạy Llama3 8B trên Intel Arc A770 GPU
- Chạy Llama3 8B Instruct trên Intel Arc A770 GPU
- Phi3
- Chạy Phi3 4K Instruct trên Intel Arc A770 GPU
- So sánh hiệu năng
- Kết luận
- Liên kết hữu ích
- Tài liệu tham khảo
Giới thiệu
Intel Arc A770 GPU là một lựa chọn cạnh tranh cho các tác vụ AI chuyên sâu, đặc biệt là đối với những người làm việc trong hệ sinh thái Windows. Trước đây, GPU NVIDIA và CUDA thống trị lĩnh vực này, nhưng sản phẩm mới nhất của Intel cung cấp một lựa chọn mạnh mẽ. Bài viết này cung cấp thông tin mới để giúp người dùng làm việc dễ dàng hơn với Arc A770 GPU trên Windows, không cần sử dụng Windows Subsystem for Linux (WSL). Qua các bước thực hành và những hiểu biết chi tiết, chúng tôi khám phá cách thiết lập và tối ưu hóa Arc A770 GPU cho các mô hình AI khác nhau, bao gồm Llama2, Llama3 và Phi3. Bài viết cũng bao gồm các số liệu hiệu năng và thống kê sử dụng bộ nhớ, cung cấp cái nhìn tổng quan về khả năng của GPU. Cho dù bạn là nhà phát triển hay nhà nghiên cứu, bài viết này sẽ trang bị cho bạn kiến thức để tận dụng GPU của Intel cho các dự án AI của mình một cách hiệu quả và hiệu quả.
Cài đặt trên Windows
Intel cung cấp hướng dẫn đầy đủ để cài đặt phần mở rộng Python cho Arc GPU. Tuy nhiên, việc thiết lập Arc A770 GPU trên Windows yêu cầu một số điều chỉnh và khắc phục sự cố ban đầu. Dưới đây là tóm tắt ngắn gọn về những điều chỉnh đó. Để biết hướng dẫn chi tiết, hãy tham khảo kho lưu trữ mẫu.
- Do oneAPI yêu cầu thiết lập một số biến môi trường từ CMD, nên tôi khuyên bạn nên cài đặt phần mở rộng Pscx cho PowerShell, cho phép bạn dễ dàng gọi các tập lệnh CMD.
- Khi làm việc trên Windows với mamba, biến môi trường PATH có thể trở nên quá dài, gây ra sự cố khi thiết lập các biến môi trường oneAPI. Để tránh vấn đề này, tôi đã bao gồm một tập lệnh setup_vars.ps1 thiết lập các biến môi trường cần thiết cho oneAPI trong khi vẫn bỏ qua vấn đề này.
- Mẫu Phi3 yêu cầu cài đặt phiên bản trước phát hành của thư viện ipex-llm, triển khai tối ưu hóa cho tất cả các thao tác kernel của Phi3. Sau khi cài đặt thư viện này, bạn phải cài đặt lại thư viện transformers.
Sử dụng Intel Extension for PyTorch
Như được nêu trong kho lưu trữ GitHub của nó, Intel® Extension for PyTorch mở rộng PyTorch với các tối ưu hóa tính năng cập nhật để tăng cường hiệu năng bổ sung trên phần cứng Intel. Cụ thể, nó cung cấp khả năng tăng tốc GPU dễ dàng cho GPU rời của Intel thông qua thiết bị PyTorch xpu. Điều này có nghĩa là, bằng cách sử dụng phần mở rộng này, bạn có thể tận dụng Intel Arc A770 GPU cho các tác vụ AI mà không cần dựa vào CUDA/NVIDIA, và bạn có thể nhận được sự gia tăng hiệu năng lớn hơn khi sử dụng một trong các mô hình được tối ưu hóa. May mắn thay, phần mở rộng tuân theo cùng API với PyTorch, vì vậy nói chung chỉ cần thực hiện một vài thay đổi trong mã để chạy nó trên GPU Intel. Dưới đây là tóm tắt ngắn gọn về những thay đổi cần thiết:
- Kiểm tra GPU: Thêm phần mở rộng Intel cho PyTorch và kiểm tra xem GPU có được phát hiện chính xác hay không. Thay đổi này không thực sự cần thiết, nhưng đó là một thực hành tốt để kiểm tra xem GPU có được phát hiện chính xác hay không trước khi chạy mô hình.
- Di chuyển mô hình đến GPU: Sau khi mô hình được tải, hãy di chuyển nó đến GPU.
- Di chuyển đầu vào đến GPU: Cuối cùng, khi sử dụng mô hình, hãy đảm bảo dữ liệu đầu vào cũng ở trên GPU.
Thay đổi để đo lường hiệu năng
Để đo lường hiệu năng chính xác, tôi cũng đã thêm một số mã bổ sung để truy xuất tổng thời gian suy luận và phân bổ bộ nhớ tối đa. Nó chủ yếu bao gồm việc khởi động nóng mỗi mô hình trước khi thực hiện suy luận, cộng với một số mã bổ sung để chờ mô hình chạy và in kết quả theo cách dễ đọc. Hãy kiểm tra kho lưu trữ mẫu để biết thêm thông tin và để tái tạo kết quả trên máy của riêng bạn.
Llama2
Llama2 là lần lặp lại thứ hai của mô hình Llama LLM phổ biến và mã nguồn mở của Meta. Sau khi chuẩn bị môi trường và thực hiện các thay đổi được nêu trong phần trước cho các mẫu chính thức của Llama2, tôi đã có thể chạy mô hình Llama2 trên Intel Arc A770 GPU, cho cả suy luận thông thường và các tác vụ hướng dẫn.
Chạy Llama2 7B trên Intel Arc A770 GPU
Mô hình Llama2 7B sử dụng khoảng 14GB bộ nhớ khi sử dụng độ chính xác float16. Vì GPU có sẵn 16GB, nên chúng ta có thể chạy nó mà không gặp vấn đề gì. Dưới đây bạn có thể thấy kết quả của mẫu suy luận, sử dụng tối đa 128 mã thông báo trong đầu ra.
Chạy Llama2 7B Chat trên Intel Arc A770 GPU
Tương tự, kết quả trò chuyện của Llama2 7B thật ấn tượng, với mô hình tạo ra phản hồi giống con người theo cách trò chuyện. Mẫu trò chuyện chạy trơn tru trên Intel Arc A770 GPU, thể hiện khả năng của nó cho các ứng dụng trò chuyện. Trong trường hợp này, mẫu chạy với 512 mã thông báo trong đầu ra để tăng cường áp lực cho phần cứng.
Llama3
Llama3 là lần lặp lại mới nhất của mô hình Llama LLM của Meta, được phát hành cách đây vài tháng. May mắn thay, nhóm Intel đã vội vàng đưa tối ưu hóa mô hình vào phần mở rộng, vì vậy có thể tận dụng tối đa sức mạnh của Intel Arc A770 GPU. Quá trình này khá giống với quá trình được sử dụng cho Llama2, sử dụng cùng môi trường và các mẫu chính thức.
Chạy Llama3 8B trên Intel Arc A770 GPU
Mô hình Llama3 8B sử dụng khoảng hơn 15GB bộ nhớ khi sử dụng độ chính xác float16. Vì GPU có sẵn 16GB, nên chúng ta có thể chạy nó mà không gặp vấn đề gì. Dưới đây bạn có thể thấy kết quả của mẫu suy luận, sử dụng tối đa 64 mã thông báo trong đầu ra.
Chạy Llama3 8B Instruct trên Intel Arc A770 GPU
Theo sau các mẫu Llama2, tôi cũng đã thử nghiệm khả năng trò chuyện của mô hình Llama3 8B, tăng mã thông báo đầu ra lên 256.
Phi3
Phi3 là mô hình mới nhất từ Microsoft, được phát hành vào ngày 24 tháng 4, được thiết kế cho các tác vụ hướng dẫn. Nó là một mô hình nhỏ hơn Llama2 và Llama3 (3,8B tham số là phiên bản nhỏ nhất), nhưng nó vẫn khá mạnh mẽ. Nó được đào tạo cho các tác vụ hướng dẫn, cung cấp phản hồi chi tiết và đầy đủ thông tin. Mặc dù tối ưu hóa Phi3 cho phần cứng Intel vẫn chưa được đưa vào Intel Extension for PyTorch, chúng ta có thể sử dụng thư viện của bên thứ ba, ipex-llm, để tối ưu hóa mô hình. Trong trường hợp này, vì Phi3 khá mới, để có được tối ưu hóa, tôi phải cài đặt phiên bản trước phát hành, triển khai tối ưu hóa cho tất cả các thao tác kernel của Phi3. Lưu ý rằng ipex-llm không phải là thư viện chính thức của Intel, mà là thư viện do cộng đồng điều khiển, vì vậy nó không được Intel hỗ trợ chính thức. Sau khi mô hình được tối ưu hóa, phần còn lại của các sửa đổi mã giống với Llama2 và Llama3, vì vậy tôi đã có thể chạy mô hình Phi3 trên Intel Arc A770 GPU mà không gặp vấn đề gì.
Chạy Phi3 4K Instruct trên Intel Arc A770 GPU
Mô hình 4K sử dụng khoảng 2,5GB bộ nhớ khi sử dụng độ chính xác 4 bit. Vì nó có ít tham số hơn nhiều so với các mô hình Llama, nên nó chạy nhanh hơn nhiều. Dưới đây bạn có thể thấy kết quả của mẫu suy luận, sử dụng tối đa 512 mã thông báo trong đầu ra.
So sánh hiệu năng
Để đánh giá đầy đủ hiệu năng của Intel Arc A770 GPU, tôi đã tiến hành phân tích so sánh về thời gian thực thi và sử dụng bộ nhớ cho mỗi mô hình trên cả Intel Arc A770 GPU và NVIDIA RTX3080 TI. Các số liệu được thu thập bằng cách sử dụng các mẫu mã và cài đặt môi trường giống hệt nhau cho cả hai GPU, đảm bảo so sánh công bằng và chính xác.
Intel ARC A770
Mô hình | Mã thông báo đầu ra | Thời gian thực thi | Sử dụng bộ nhớ tối đa |
---|---|---|---|
meta-llama/Llama-2-7b-hf | 128 | ~7,7 giây | ~12,8GB |
meta-llama/Llama-2-7b-chat-hf | 512 | ~22,1 giây | ~13,3GB |
meta-llama/Meta-Llama-3-8B | 64 | ~11,5 giây | ~15,1GB |
meta-llama/Meta-Llama-3-8B-Instruct | 256 | ~30,7 giây | ~15,2GB |
microsoft/Phi-3-mini-4k-instruct | 512 | ~5,9 giây | ~2,6GB |
NVIDIA RTX3080 TI
Mô hình | Mã thông báo đầu ra | Thời gian thực thi | Sử dụng bộ nhớ tối đa |
---|---|---|---|
meta-llama/Llama-2-7b-hf | 128 | ~15,5 giây | ~12,8GB |
meta-llama/Llama-2-7b-chat-hf | 512 | ~51,5 giây | ~13,3GB |
meta-llama/Meta-Llama-3-8B | 64 | ~16,9 giây | ~15,1GB |
meta-llama/Meta-Llama-3-8B-Instruct | 256 | ~66,7 giây | ~15,2GB |
microsoft/Phi-3-mini-4k-instruct | 512 | ~16,7 giây | ~2,6GB |
Kết luận
Intel Arc A770 GPU đã chứng minh là một lựa chọn đáng chú ý cho tính toán AI trên máy Windows cục bộ, cung cấp một lựa chọn thay thế cho hệ sinh thái CUDA/NVIDIA. Khả năng của GPU để chạy hiệu quả các mô hình như Llama2, Llama3 và Phi3 thể hiện tiềm năng và khả năng hiệu năng mạnh mẽ của nó. Mặc dù gặp một số thách thức trong thiết lập ban đầu, nhưng quy trình này tương đối đơn giản và kết quả rất ấn tượng. Về bản chất, Intel Arc A770 GPU là một công cụ mạnh mẽ cho các ứng dụng AI trên Windows. Với một số thiết lập ban đầu và điều chỉnh mã, nó đã xử lý các tác vụ suy luận, trò chuyện và đào tạo một cách hiệu quả. Điều này mở ra những cơ hội mới cho các nhà phát triển và nhà nghiên cứu muốn hoặc cần làm việc trong môi trường Windows mà không cần dựa vào GPU NVIDIA và CUDA. Khi Intel tiếp tục nâng cao các sản phẩm GPU và hỗ trợ phần mềm của mình, Arc A770 và các mô hình trong tương lai được định hướng để trở thành những người chơi quan trọng trong cộng đồng AI.
Liên kết hữu ích
- Các mẫu mã được sử dụng trong bài viết này có thể được tìm thấy trong kho lưu trữ GitHub IntelArcA770.
- Dưới đây là một số tài nguyên mà tôi thấy rất cần thiết để đi sâu hơn vào hệ sinh thái phần cứng & thư viện của Intel cho các tác vụ AI.
- Kênh YouTube của Intel
- Thư viện Tech.Decoded
- Christian Mills - Kiểm tra GPU Intel Arc A770 cho Học máy sâu
- Tổng quan về SYCL - The Khronos Group Inc
- Tài liệu chính thức - PyTorch* Optimizations from Intel
- Công cụ và tài nguyên của Intel AI Developer
Tài liệu tham khảo
- Mẫu mã GitHub - intel/intel-extension-for-pytorch: Một gói Python để mở rộng PyTorch chính thức có thể dễ dàng đạt được hiệu năng trên nền tảng Intel
- Intel® Extension for PyTorch* - Tài liệu Intel Extension for PyTorch* 2.1.30+xpu
- Suy luận Llama 2 với PyTorch trên GPU Intel® Arc™ A-Series
- ipex-llm/python/llm/example/GPU/HF-Transformers-AutoModels/Model/phi-3 tại main · intel-analytics/ipex-llm · GitHub
javier carneron
Tác giả: Javier Carneron
Plain Concepts Research
LinkedIn
Twitter
Web
0 comments Blogger 0 Facebook
Đăng nhận xét