Tải bản đầy đủ - 0 (trang)
II. MÔ HÌNH TUẦN TỰ SISD (Single Instruction Single Data) :

II. MÔ HÌNH TUẦN TỰ SISD (Single Instruction Single Data) :

Tải bản đầy đủ - 0trang

1. Ý tưởng :

Việc nhân hai ma trận trong kiến trúc tuần tự dựa trên kiến thức tính tốn thơng thường. Nhân

ma trận Alxm và ma trận Bmxn được ma trận Clxn , với mỗi phần tử trong ma trận C được tính theo cơng

thức :

m 1



cij =







aikbkj



k 0



2. Thuật toán :

Input: A[0…(l-1)][0…(m-1)]

B[0…(m-1)][0…(n-1)]

Output:



C[0…(l-1)][0…(n-1)]



BEGIN

for i = 0 to (l-1) do

for j = 0 to (n-1) do

begin

t=0

for k = 0 to (m-1) do

t = t + aik*bkj

endfor

cij = t

end

endfor

endfor

END.

3. Đánh giá:

Trong mô hình SISD chỉ có một bộ xử lý, để nhân hai ma trận cỡ n, sẽ phải thực hiện tuần tự n 3

lệnh nhân và n3 lệnh cộng, độ phức tạp của giải thuật là O(n 3). Như vậy nếu kích cỡ hai ma trận tăng, số

lượng phép tính mà bộ xử lý phải thực hiện tăng theo hàm mũ, thời gian thực hiện sẽ lâu hơn rất nhiều.



5



Nhận thấy nhược điểm này, đồng thời thấy được đặc điểm tính toán trong bài toán ma trận nhân

là lặp lại cùng một câu lệnh trên nhiều bộ dữ liệu khác nhau, ta có ý tưởng đưa bài tốn sang giải ở một

kiến trúc song song, nhằm tăng hiệu xuất tính tốn, và cụ thể ở đây là kiến trúc song song SIMD.



6



MƠ HÌNH SONG SONG SIMD:

Đây là kiến trúc song song đồng bộ, cụ thể, sẽ có nhiều bộ xử lý, mỗi bộ xử lý có một đường dữ

liệu riêng, các bộ xử lý này được điều khiển bởi một Khối điều khiển (Control Unit - CU) duy nhất. Khi

CU phát ra một lệnh nào đó, đồng loạt các bộ xử lý sẽ thực hiện lệnh này trên bộ dữ liệu mà bộ xử lý đó

sở hữu, và kết thúc trong một chu kỳ lệnh.



Hình 2: Kiến trúc song song SIMD

Với bài toán nhân ma trận, ta sẽ xem xét hai cách tổ chức bộ xử lý: Mạng lưới 2D nối vòng và

Siêu khối.

1. Kết nối các bộ xử lý theo mạng lưới 2D nối vòng:

a) Ý tưởng:

Để nhân hai ma trận Anxn và Bnxn, ta sẽ sử dụng một mảng n2 bộ xử lý kết nối với nhau theo mạng

lưới 2D nối vòng. Mỗi bộ xử lý tương ứng với vị trí của một phần tử trong ma trận.



Hình 3: Mảng bộ xử lý dùng nhân hai ma trận cỡ 3x3



7



Sau qúa trình dịch chuyển dữ liệu và tính tốn, phần tử c ij của ma trận trận kết quả C được lưu tại

bộ xử lý Pij tương ứng. Quá trình thực hiện chia làm hai giai đoạn như sau :

Giai đoạn 1:

Các phần tử aij và bij được truyền vào các bộ xử lý Pij. Lúc này tại các bộ xử lý đã chứa các cặp

dữ liệu, tuy nhiên chỉ các cặp dữ liệu tại P ij (i = j) là chắc chắn có thể nhân với nhau, ngồi ra khơng cặp

dữ liệu có thể nhân được với nhau.



Hình 4 : Nhân ma trận cấp 3, truyền dữ liệu vào các bộ xử lý

Để làm xuất hiện các cặp dữ liệu nhân được với nhau, ta tiến hành bước dịch chuyển đặc biệt đầu

tiên. Các phần tử của ma trận A xét theo hàng, hàng thứ i sẽ dịch trái i vị trí. Các phần tử của ma trận B

xét theo cột, cột thứ j sẽ dịch lên trên i vị trí.



Lúc này tại các bộ xử lý sẽ chứa các cặp dữ liệu có thể nhân được với nhau. CU phát ra một lệnh

nhân, đồng loạt các Pij sẽ tiến hành việc nhân cặp dữ liệu của mình. Tuy nhiên lúc này mới chỉ có n 2

phép nhân được thực hiện, đây chưa phải kết quả cuối cùng.



8



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

II. MÔ HÌNH TUẦN TỰ SISD (Single Instruction Single Data) :

Tải bản đầy đủ ngay(0 tr)

×