Tải bản đầy đủ - 0 (trang)
Kết nối các bộ xử lý theo mạng lưới 2D nối vòng:

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

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

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



Giai đoạn 2: Ta tiếp tục tiến hành dịch chuyển dữ liệu, tính tốn và cộng kết quả.

Các phần tử của ma trận A xét theo hàng, tất cả các hàng sẽ dịch trái 1 vị trí. Các phần tử của ma

trận B xét theo cột, tất cả các cột sẽ dịch lên trên 1 vị trí. Thực hiện việc dịch chuyển này (n-1) lần, mỗi

lần ta lại được các cặp mới cần phải nhân.

Ví dụ khi nhân ma trận cấp 3, ở giai đoạn 2 này sẽ thực hiện 2 bước dịch chuyển. Sự dịch chuyển

dữ liệu nhìn từ góc độ bộ xử lý P4. Ở lần dịch chuyển trước đang chứa cặp dữ liệu a12 và b21.



Lần 1: a12 dịch sang trái 1 vị trí (P3), b 21 dịch lên trên 1 vị trí (P1), P4 chứa cặp dữ liệu mới được

dịch vào là a10 và b01. CU lại phát lệnh nhân cho các bộ xử lý thực hiện. Nhân xong, cộng gộp với kết

quả nhân trước đó.



Lần 2: a10 dịch sang trái 1 vị trí (P3), b 01 dịch lên trên 1 vị trí (P1), P4 chứa cặp dữ liệu mới được

dịch vào là a11 và b11. CU lại phát lệnh nhân cho các bộ xử lý thực hiện. Cuối cùng ta được ma trận C lưu

ở mảng bộ xử lý.



9



b)



Thuật tốn :



Biến tồn cục: n, k

Biến cục bộ: a, b, c

BEGIN

(Giai đoạn 1: Định tuyến dữ liệu)

for k=0 to (n-2) do

for all Pij với 0 ≤ i,j ≤ (n-1) do

if (i > k) then

a = east(a)

endif

if (j > k) then

b = south(b)

endif

endfor

endfor

for all Pij với 0 ≤ i,j ≤ (n-1) do

c=axb

endfor

(Giai đoạn 2: Cộng kết quả)

for k=0 to (n-2) do

for all Pij với 0 ≤ i,j ≤ (n-1) do

a = east(a)

b = south(b)

c = c + a*b

endfor

endfor

END

c) Đánh giá:

Mơ hình song song SIMD tổ chức bộ xử lý theo mạng lưới 2D nối vòng, để nhân hai ma trận cỡ

n, sử dụng n2 bộ xử lý. Sự song song diễn ra khi tiến hành phép nhân, n 2 bộ xử lý đồng thời thực hiện



10



lệnh nhân do CU phát ra, vậy sau n 3/n2 = n lệnh nhân, các bộ xử lý sẽ tính ra được kết quả cuối cùng. Độ

phức tạp của giải thuật là O(n), giảm được đáng kể thời gian thực hiện.

2. Kết nối các bộ xử lý theo mạng hình siêu khối:

a) Ý tưởng:

Để nhân hai ma trận Anxn và Bnxn, ta sẽ sử dụng n3=23q bộ xử lý kết nối với nhau theo mạng hình siêu

khối. Mạng siêu khối – hay còn gọi là một n-lập phương nhị phân, gồm có 2k nút tạo thành siêu khối k

chiều. Sử dụng k bit đánh tên nút theo quy tắc hai nút cạnh nhau chỉ sai khác nhau đúng một vị trí bit.



Hình 5: Siêu khối 3 chiều – 8 nút, dùng nhân ma trận cấp 2

Ý tưởng ở đây, sẽ đưa tất cả n 3 cặp số cần phải nhân vào n3 bộ xử lý, sau đó CU chỉ phải phát

lệnh nhân một lần.

Ban đầu, các phần tử aij và bij được truyền vào các bộ xử lý P(2qi + j). Sau qúa trình dịch chuyển

dữ liệu và tính tốn, phần tử cij của ma trận trận kết quả C được lưu tại bộ xử lý P(2qi + j) tương ứng.

P(2qi + j)



A



B



P000 (P0)



a00



b00



P001 (P1)



a01



b01



P010 (P2)



a10



b10



P011 (P3)



a11



b11



P100 (P4)



11



P101 (P5)

P110 (P6)

P111 (P7)



Giai đoạn 1:

Truyền giá trị của hai ma trận vào các bộ xử lý còn lại. Các bộ xử lý đều đã chứa các cặp dữ liệu,

tuy nhiên đây chưa phải các cặp dữ liệu có thể nhân được với nhau, ta tiến hành việc định tuyến dữ liệu,

tức đưa các cặp số phải nhân vào bộ xử lý thích hợp.



Giai đoạn 2:

Ta sẽ áp dụng giải thuật, định tuyến cho các phần tử của các ma trận về vị trí theo cặp có thể

nhân được với nhau. Khi các cặp số đã về đúng bộ xử lý thích hợp, ta tiến hành việc nhân song song, n 3

bộ xử lý đồng thời nhân các cặp dữ liệu của mình.



12



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

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

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

×