1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu Luận Xử Lý Dữ Liệu Song Song Trong Kiến Trúc Vector, Simd Và Gpu.pdf

13 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,8 MB

Nội dung

Khái niệm Cấu trúc vector là một kiến trúc máy tính chuyên dụng, nơi dữ ệu được phân tán trong bộ li nhớ, sau đó được đưa vào các bộ đăng ký lớn theo thứ tự, thực hiện các hoạt động trên

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Tiểu luận

Xử lý dữ ệu song song trong ến trúc Vector, SIMD và GPU li ki

ầy ần Hiếu

ạm ăn Chiến

ố sinh vi ớp

Hà Nội , ngày 2 tháng 12 năm 2023

Trang 2

2

Mục lục

I Tổng quan đề tài 3

II Kiến trúc vector 3

1 Khái niệm 3

2 Các thành phần của VMIPS 3

3 Thời gian thực hiện vector 5

4 Ưu điểm của kiến trúc vector 5

III Single Instruction, Multiple Data (SIMD) 5

1 Khái niệm 5

2 SIMD đa phương tiện 6

3 Mô hình Roofline 6

4 Ưu điểm và ứng dụng của SIMD 7

IV Graphics Processing Units (GPU) 8

1 Khái niệm 8

2 Cấu trúc bộ nh ớ GPU NVIDIA 8

3 So sánh VMIPS và GPU 9

4 So sánh SIMD và GPU 10

V Kiến trúc máy tính cho xử lý video: Xử lý song song cho xe tự hành 11

1 Song song dữ liệu cho xử lý video 11

2 Vai trò của song song dữ ệu cho xe tự hành li 11

3 Thách thức trong việc triển khai song song dữ ệu trong xe tự hành li 12

VI Kết luận 12

Tài liệu tham khảo 13

Trang 3

3

Dữ ệu cấp độ song song (DLP) là một kỹ thuật cải thiện hiệu suất của chương trình máy li tính bằng cách thực thi nhiều lệnh trên nhiều thành phần dữ liệu cùng một lúc Điều này có thể được thực hiện theo nhiều cách, bao gồm bộ xử lý vector, mở rộng SIMD (Single Instruction, Multiple Data) và GPU (Graphics Processing Units)

Hiệu suất của chương trình máy tính được xác định bởi tốc độ ực thi của các chỉ ị Tốth th c

độ ực thi của các chỉ ị được giới hạn bởth th i tốc độ của bộ xử lý, tốc độ truy cập bộ nhớ và

độ phức tạp của các chỉ ị Một cách để cải thiện hiệu suất của chương trình máy tính là sử th dụng tính toán song song Tính toán song song là thực hiện nhiều tác vụ cùng một lúc Có nhiều cấp độ tính toán song song, bao gồm dữ ệu cấp độ song song (DLP), cấp độ ỉ ị li ch th song song (ILP) và cấp độ cấp độ song song (TLP)

DLP là cấp độ tính toán song song cơ bản nhất DLP được thực hiện bằng cách thực thi nhiều chỉ ị trên nhiều phần tử dữ ệu cùng mộth li t lúc

1 Khái niệm

Cấu trúc vector là một kiến trúc máy tính chuyên dụng, nơi dữ ệu được phân tán trong bộ li nhớ, sau đó được đưa vào các bộ đăng ký lớn theo thứ tự, thực hiện các hoạt động trên dữ liệu trong những bộ đăng ký đó, và sau đó kết quả được phân tán trở lại bộ nhớ Mỗi lệnh duy nhất thực hiện trên các vector dữ ệu, điều này dẫn đến hàng chục các hoạt động li register-register trên các phần tử dữ ệu độli c lập

Các bộ đăng ký lớn này đóng vai trò như các bộ đệm được điều khiển bởi trình biên dịch,

cả để che giấu độ ễ của bộ nhớ và tận dụng băng thông bộ nhớ Vì các hoạt động load và tr store của vector được xây dựng sâu, chương trình chỉ phải trả giá một lần cho độ ễ của bộ tr nhớ cho mỗ ệnh load hoặi l c store vector so với mỗi phần tử, từ đó phân chia độ ễ qua.tr

Kiến trúc vector (VMIPS) là một kiến trúc vector dựa trên Cray-1 Kiến trúc này có các thành phần chính sau:

Đây là phần quan trọng nhất của cấu trúc vector VMIPS Cho ph bộ xử lý lưu trữ ép

và truy cập nhiều phần tử dữ ệu cùng một lúc Mỗi thanh ghi vector trong kiến trúc li VMIPS có thể lưu trữ 64 phần tử 64 bit Điều này cho phép bộ xử lý thực hiện các phép tính trên 4096 bit dữ ệu cùng mộli t lúc

Các đơn vị chức năng vector là thành phần thực thi phép tính trong kiến trúc VMIPS Mỗi đơn vị ức năng vector có thể ực hiện các phép tính cộng, trừ, nhân và chia ch th trên các thanh ghi vector Đơn vị chức năng vector cho phép thực hiện c tính cùng ác

một lúc ều nĐi ày có thể giúp cải thiện hiệu suất của các ứng dụng vector

Trang 4

4

Hệ ống ống dẫn là một kỹ th thuật cho phép thực thi nhiều lệnh cùng một lúc Điều này có nghĩa là các lệnh có thể được thực thi ngay cả khi các lệnh khác đang được thực thi trong các đơn vị ch c năng vector khácứ

Hình 1: Cấu trúc cơ bản của kiến trúc vector

Đơn vị tải/lưu trữ vector (VLU) chịu trách nhiệm tải và lưu trữ các vector vào và từ

bộ nhớ Các lệnh tải và lưu trữ vector có thể được thực thi đồng thời với các lệnh khác Điều này cho phép bộ xử lý VMIPS thực hiện các phép tính vector trên các dữ liệu được tải từ bộ nhớ với tốc đ cao.ộ

VLU có thể xử lý các lệnh tải và lưu trữ vector có độ dài từ 1 đến 64 phần tử Các lệnh tải và lưu trữ vector có thể được sử dụng để tải các vector từ bộ nhớ vào các thanh ghi vector hoặc lưu trữ các vector từ các thanh ghi vector vào bộ nhớ VLU cũng có thể xử lý các lệnh tải và lưu trữ theo từng phần Các lệnh tải và lưu trữ theo từng phần cho phép bộ xử lý VMIPS tải và lưu trữ các dữ ệu theo từng phần li

tử Điều này có thể hữu ích trong các ứng dụng yêu cầu xử lý dữ ệu theo từng phần li tử

Thanh ghi theo từng phần (SREG) là một tập hợp các thanh ghi 64 bit SREG có thể được sử dụng để lưu trữ các dữ ệu theo từng phần SREG được sử dụng bởi VLU li

để lưu trữ các dữ ệu được tải từ bộ ớ hoặc được tạo bởi các đơn vị ức năng li nh ch vector

Trang 5

5

SREG cũng có thể được sử dụng bởi các đơn vị ức năng vector để cung cấp đầch u vào cho các phép tính vector Điều này cho phép các phép tính vector được thực hiện trên các dữ liệu được lưu trữ trong SREG

3 Thời gian thực hiện vector

Thời gian thực hiện vector (VET) phụ thuộc vào ba yếu tố chính gồm: Độ dài vector: Chiều dài vector càng lớn, thời gian thực hiện phép tính càng lâu; Các mối nguy cơ cấu trúc: Các

mối nguy cơ cấu trúc xảy ra khi hai hoặc nhiều phép tính cố gắng sử dụng cùng một tài nguyên cùng một lúc Các lỗi này có thể được tránh bằng cách sử dụng các lệnh vector

cùng nhau trong một convoy; Các phụ thu ộc dữ liệu: Các phụ thuộc dữ ệu xảy ra khi một li phép tính phụ thuộc vào kết quả của phép tính khác Các phụ thuộc này có thể được tránh bằng cách sử dụng chaining

Convoy là một nhóm các lệnh vector có thể ực hiện cùng nhau mà không có bất kỳ lỗth i cấu trúc nào Chaining cho phép một phép tính vector bắt đầu ngay khi các phần tử riêng

lẻ của toán hạng vector nguồn của nó có sẵn.Thời gian thực hiện của một chuỗi phép tính vector trong chimes là xấp xỉ bằng số convoy trong chuỗi nhân với chiều dài vector Công thức chung của thời gian thực hiện vector là

T = t_c * n * L

Với T là thời gian thực hiện vector, t_c là thời gian thức hiện một convoy, n là số convoy,

L là chiều dài vector

4 Ưu điểm của kiến trúc vector

Chúng ta thấy được mộ ố ưu điểt s m của kiến trúc vector:

• Tăng tốc độ: Kiến trúc vector có thể tăng tốc độ xử lý các ứng dụng có thể được tối

ưu hóa cho vector hóa

• Đơn giản hóa lập trình: Kiến trúc vector có thể đơn giản hóa lập trình cho các nhà phát triển không quen thuộc với lập trình song song

• Tăng khả năng mở rộng: Kiến trúc vector có thể giúp tăng khả năng mở rộng của máy tính

Kiến trúc vector được sử dụng rộng rãi trong các ứng dụng khoa học và kỹ thuật, chẳng hạn như mô phỏng, xử lý tín hiệu và xử lý hình ảnh Một số bộ xử lý phổ biến hỗ ợ kiếtr n trúc vector bao gồm Intel Xeon Phi, AMD Ryzen Threadripper và NVIDIA Tesla

1 Khái niệm

SIMD (Single Instruction, Multiple Data) là một kiến trúc xử lý song song dữ liệu, cho phép

bộ xử lý thực hiện cùng một phép toán trên nhiều phần tử dữ ệu cùng một lúc Kiến trúc li SIMD được sử dụng rộng rãi trong các ứng dụng đa phương tiện, chẳng hạn như xử lý hình ảnh, xử lý âm thanh và mã hóa video

Trang 6

6

Có hai loại SIMD chính:

▪ SIMD tổng quát: SIMD tổng quát cho phép thực hiện các phép toán trên các dữ

liệu có kiểu dữ ệu và kích thước khác nhau.li

▪ SIMD đa phương tiện: SIMD đa phương tiện được thiết kế để tối ưu hóa cho các ứng dụng xử lý đa phương tiện, chẳng hạn như xử lý hình ảnh và âm thanh

2 SIMD đa phương tiện

Trong đây chúng ta tìm hiểu về SIMD đa phương tiện SIMD đa phương tiện thường được

sử dụng trong các ứng dụng xử lý đa phương tiện, chẳng hạn như xử lý hình ảnh và âm thanh Các ứng dụng này thường phải thực hiện các phép toán trên các dữ liệu có kiểu dữ liệu và kích thước nhỏ như 8 bit và 16 bit

Các ại SIMD đa phương tiện bao gồm: lo

▪ MMX, đây là SIMD đa phương ện đầu ti cho kiến trúc x86 năm 1996 hỗ ợ ti ên tr các phép toán trên dữ liệu từ 8 đến 16 bit

▪ SSE l SIMD kế nhiệm MMX cho kiến trúc x86 nà ăm 1999 hỗ ợ các phtr ép toán

từ 8 bit, 16 bit và 32 bit;

▪ AVX là SIMD mới nh t ấ ra mắt năm 2010 để hỗ ợ các phtr ép toán đến 64bit Lập trình kiến trúc SIMD đa phương tiện theo truyền thống được thực hiện thông qua các thư viện hoặc hợp ngữ do tính chất đặc biệt của các phần mở rộng Tuy nhiên, các phần

mở rộng gần đây đã trở nên thường xuyên hơn, khiến chúng dễ dàng được tối ưu hóa trình biên dịch hơn Kết quả là, các trình biên dịch giờ đây có thể tự động tạo ra các hướng dẫn SIMD cho một số ại mã nhất định, chẳng hạn như mã khoa học Để đảm bảo trình biên lo dịch tạo ra các lệnh SIMD, người lập trình phải căn chỉnh tất cả dữ ệu trong bộ nhớ theo li chiều rộng của đơn vị SIMD

3 Mô hình Roofline

Mô hình Roofline là một mô hình trực quan để so sánh hiệu suất tiềm năng của các kiến trúc máy tính khác nhau Nó biểu diễn hiệu suất của một kiến trúc SIMD dưới dạng hàm

số của độ dày dữ ệu, là tỷ lệ giữa số phép tính số ực với số byte dữ ệu được truy cậli th li p trong bộ nhớ

Hình 2: Cường độ số học, được chỉ định bằng số phép toán dấu phẩy động để chạy chương trình chia cho số byte đượ c truy c ập trong bộ nhớ chính

Trang 7

7

chính Mô hình Roofline có thể được sử dụng để xác định xem một chương trình có bị giới hạn bởi băng thông bộ nhớ hay hiệu suất tính toán

Mô hình Roofline là một đồ ị hai chiều biểu diễn hiệu suất số ực dưới dạng hàm số th th của độ dày dữ ệu Mô hình có ba đường:li

▪ Đường ngang biểu thị hiệu suấ ố t s thực tối đa của máy tính

▪ Đường chéo biểu thị băng thông bộ nhớ tối đa của máy tính

▪ Điểm giao của hai đường này được gọi là "đỉnh mái"

Nếu độ dày dữ ệu của một chương trình lớn hơn đỉnh mái, chương trình đó bị giới hạli n bởi băng thông bộ nhớ Còn nếu độ dày dữ ệu của một chương trình nhỏ hơn đỉnh mái, li chương trình đó bị giới hạn bởi hiệu suất tính toán

Ta có thế dùng mô hình Roofline để làm so sánh hiệu suất của hai kiến trúc máy tính NEC

Hình 3: a) Mô h ình R oofline cho N EC SX-9 CPU b) Mô hình Roofline cho ; Intel C ore i7 920

▪ NEC SX-9: NEC SX-9 là một siêu máy tính vector có hiệu suất số ực tối đa là th 102,4 GFLOP/giây và băng thông bộ nhớ tối đa là 162 GByte/giây

▪ Intel Core i7 920: Intel Core i7 920 là một máy tính đa lõi có hiệu suất số thực tối đa

là 42,66 GFLOP/giây và băng thông bộ nhớ tối đa là 16,4 GByte/giây

Điều này cho thấy NEC SX-9 nhanh hơn Intel Core i7 920 rất nhiều đối với các chương trình có độ dày dữ ệu 0,25 hoặc thấp hơn Điều này là do SX-9 có băng thông bộ nhớ li cao hơn nhiều

4 Ưu điểm và ứng dụng của SIMD

Chúng ta có thể thấy được mộ ố ưu điểt s m của SIMD mang lại cho xử lý đa phương tiện gồm:

Trang 8

8

Tăng tốc độ xử lý: SIMD đa phương tiện có thể giúp tăng tốc độ xử lý các ứng dụng xử lý đa phương tiện bằng cách thực hiện các phép toán trên nhiều dữ liệu cùng một lúc

▪ Giảm chi phí: SIMD đa phương tiện thường ít tốn kém hơn để triển khai so với các kiến trúc vector tổng quát

▪ Giảm độ phức tạp: SIMD đa phương tiện thường dễ lập trình hơn so với các kiến trúc vector tổng quát

SIMD đa phương tiện đượ ứng dụng rộng rãi trong các ứng dụng xử lý đa phương tiện c như:

▪ Xử lý hình ảnh: SIMD đa phương tiện được sử dụng trong các ứng dụng xử lý hình ảnh, chẳng hạn như lọ ảnh, chuyển đổi màu sắc c, và nhận dạng hình ảnh

▪ Xử lý âm thanh: SIMD đa phương tiện đượ ử dụng trong các ứng dụng xử lý âm c s thanh như mã hóa âm thanh, giải mã âm thanh, và xử lý âm thanh thời gian thực SIMD đa phương tiện là một công nghệ quan trọng được sử dụng trong các ứng dụng xử

lý đa phương tiện SIMD đa phương tiện có thể giúp tăng tốc độ xử lý các ứng dụng này bằng cách thực hiện các phép toán trên nhiều dữ ệu cùng mộli t lúc

IV Graphics Processing Units (GPU)

1 Khái niệm

Graphics Processing Unit, là một loại chip chuyên dụng được thiết kế để xử lý đồ họa Tuy nhiên, trong những năm gần đây, GPU đã được sử dụng ngày càng nhiều cho các ứng dụng tính toán tổng quát, chẳng hạn như khoa học, kỹ thuật và tài chính GPU bắt nguồn từ các bộ tăng tốc đồ họa, được sử dụng để tăng tốc việc hiển thị đồ họa trên màn hình Các bộ tăng tốc đồ họa ban đầu sử dụng kiến trúc vector, trong đó các phép tính được th c hiự ện trên các nhóm dữ ệu song song.li

GPU bao gồm m t sộ ố thành phần chính:

▪ Khối xử lý đa luồng (multithreaded processing unit, MMU): MMU là bộ não của GPU, chịu trách nhiệm điều phối các hoạt động của GPU

▪ Đơn vị tính toán số ực (floating-point processing unit, FLPU): FLPU là thành th phần thực hiện các phép tính số thực

▪ Đơn vị tính toán logic (logic processing unit, LPU): LPU là thành phần thực hiện các phép tính logic

▪ Bộ nhớ truy cập ngẫu nhiên (random-access memory, RAM): RAM là nơi lưu trữ

dữ ệu và mã cần thiết cho GPU.li

GPU NVIDIA có cấu trúc bộ nhớ ba cấp, bao gồm bộ nhớ riêng, bộ nhớ cục bộ và bộ nhớ GPU

▪ Bộ nhớ riêng: Bộ nhớ riêng là bộ nhớ ngoài DRAM dành riêng cho mỗi luồng SIMD Nó được sử dụng cho khung ngăn xếp, đổ rác thanh ghi và các biến riêng không vừa với thanh ghi Các luồng SIMD không chia sẻ bộ nhớ riêng

Trang 9

9

Bộ nhớ cục bộ: Bộ nhớ cục bộ là bộ nhớ trên chip dành riêng cho mỗi bộ xử lý SIMD đa luồng

▪ Bộ nhớ GPU: Bộ nhớ GPU là bộ nhớ ngoài DRAM được chia sẻ bởi toàn bộ GPU

và tất cả các khối luồng Nó được sử dụng cho các biến toàn cục và cấu trúc dữ liệu khối luồng

Hình 4: Cấu trúc bộ nhớ GPU

Thay vì dựa vào bộ nhớ đệm lớn để chứa toàn bộ tập làm việc của ứng dụng, GPU truyền thống sử dụng bộ nhớ đệm phát trực tuyến nhỏ hơn và dựa vào đa luồng rộng rãi của các

luồng của các lệnh SIMD để ẩn độ trễ dài đến DRAM, vì tập làm việc của chúng có thể lên đến hàng trăm megabyte Với việc sử dụng đa luồng để ẩn độ ễ DRAM, diện tích tr chip được sử dụng cho bộ ớ đệm trong bộ xử lý hệ ống được sử dụng thay vào đó nh th cho các tài nguyên tính toán và cho số ợng lớn thanh ghi để giữ ạng thái của nhiều lư tr

luồng của các lệnh SIMD Ngược lại tải và lưu vectơ phân bổ độ ễ tr trên nhiều phần tử,

vì chúng chỉ ả độ ễ mộ ần và sau đó nố ếp các truy cập còn lạ Mặtr tr t l i ti i c dù triết lý cơ bản là ẩn độ trễ bộ nhớ, hãy lưu ý rằng các GPU và bộ xử lý vector mới nhất đã thêm bộ nhớ đệm

3 So sánh VMIPS và GPU

Bộ xử lý vector và GPU có nhiều điểm tương đồng giống nhau:

▪ Song song cấp dữ ệu: Cả kiến trúc vector và GPU đều khai thác song song cấli p

dữ ệu để li thực hiện nhiều phép toán trên nhiều phần tử dữ ệu trong mộ ệnh li t l

▪ Thực thi SIMD (Single Instruction, Multiple Data): Cả kiến trúc vector và GPU đều sử dụng thực thi SIMD, trong đó một lệnh có thể ực hiện cùng một phép th toán trên nhiều phần tử dữ liệu cùng một lúc

▪ Bộ xử lý luồng: Cả kiến trúc vector và GPU đều sử dụng bộ xử lý luồng, là các

bộ xử lý chuyên dụng được thiết kế để xử lý luồng dữ ệu song song cao li

Trang 10

10

Dù có nhiều điểm tương đồng với nhau tuy nhiên VMIPS với GPU vẫn có nhiều điểm khác biệ với nhaut

Mẫu truy cập bộ nhớ Liên tiếp Bước nhảy, phân tán

Mô hình lập trình Truyền thống Chuyên dụng

Kiến trúc vector và GPU đều có những ưu điểm và nhược điểm riêng Kiến trúc vector phù hợp hơn cho các ứng dụng có mẫu truy cập bộ nhớ liên tiếp và yêu cầu độ chính xác cao GPU phù hợp hơn cho các ứng dụng có mẫu truy cập bộ nhớ ức tạp và yêu cầu ph hiệu suất cao

4 So sánh SIMD và GPU

Máy tính SIMD đa phương tiện và GPU (Bộ xử lý đồ họa) đều là các loại bộ xử lý song song sử dụng kiến trúc SIMD (Single Instruction, Multiple Data) để tăng tốc các tác vụ đòi hỏi nhiều tính toán Tuy nhiên, chúng khác nhau về mục tiêu thiết kế chính, ứng dụng mục tiêu và mô hình lập trình

▪ Kiến trúc SIMD: Cả máy tính SIMD đa phương tiện và GPU đều sử dụng kiến trúc SIMD, cho phép chúng thực thi một lệnh trên nhiều phần tử dữ liệu cùng một lúc

▪ Song song dữ ệu: Cả hai đều tận dụng song song dữ ệu, khai thác tiềm năng li li

thực hiện nhiều phép tính trên nhiều phần tử dữ ệu cùng một lúc li

▪ Bộ xử lý luồng: Cả hai đều sử dụng bộ xử lý luồng, là các bộ xử lý chuyên dụng được thiết kế để xử lý hiệu quả luồng dữ liệu song song cao

Sự khác nhau giữa SIMD với GPU

Mục tiêu thiết kế Xử lý âm thanh, video Xử lý đồ họa, tính toán

tổng quát

ảnh video

Kết xuấ đồ họa, mô t phỏng vật lý

Mô hình lập trình Mô hình độc quyền,

phần mở rộng ngôn ngữ

CUDA, OpenCL

Máy tính SIMD đa phương tiện và GPU đều là những bộ xử lý song song mạnh mẽ mang lại những cải tiến đáng kể về hiệu suất cho các phép tính song song dữ ệu Tuy nhiên, li mục tiêu thiết kế, ứng dụng mục tiêu và mô hình lập trình riêng biệt của chúng khiến chúng phù hợp với các loại tác vụ tính toán khác nhau Máy tính SIMD đa phương tiện được thiết

kế cho xử lý âm thanh/video, trong khi GPU thống trị xử lý đồ họa và ngày càng trở thành những bộ tăng tố ổng quát đa năng.c t

Ngày đăng: 04/05/2024, 12:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w