Tải bản đầy đủ (.pptx) (21 trang)

Nhân ma trận

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (406.6 KB, 21 trang )

Nhân ma trận
Nhóm 1
1
Đặc điểm chính

Nhân dãy ma trận

Thuật toán xử lí các mảng

Nhân ma trận lưới 2-D kiểu SIMD

Nhân ma trận trong kiến trúc siêu khối 3 chiều SIMD

Nhân ma trận trên bộ đa xử lí UMA

Nhân ma trận trên nhiều máy tính.
2
Nhân dãy ma trận
Global a[0 l-1,0 m-1], b[0 m-1][0 n-1], {Matrices to be multiplied}
c[0 l-1,0 n-1], {Product matrix}
t, {Accumulates dot product}
i, j, k;
Begin
for i:=0 to l-1 do
for j:=0 to n-1 do
t:=0;
for k:=0 to m-1 do
t:=t+a[i][k]*b[k][j];
endfor k;
c[i][j]:=t;
endfor j;


endfor i;
End.
3
Thuật toán xử lí các mảng

Nhân ma trận lưới 2-D kiểu SIMD

Nhân ma trận trên kiến trúc siêu khối 3 chiều SIMD
4
Nhân ma trận lưới 2-D
kiểu SIMD

Gentleman (1978) đưa ra rằng nhân ma trận n*n 2-D kiểu SIMD yêu cầu 0(n) bước định tuyến

Chúng ta sẽ xét thuật toán nhân ma trận lưới 2-D kiểu SIMD với kết nối wraparound

Để đơn giản, ta giả sử rằng

Kích thước lưới là n*n

Kích thước mỗi ma trận (A và B) là n*n

Mỗi bộ xử lí trong lưới (vị trí của hàng là i, cột là j) chứa và

Trong phần cuối của thuật toán, sẽ chứa các phần tử của tích ma trận.


5
Nhân ma trận lưới 2-D kiểu SIMD (TT)


Giai đoạn chính
(a) sắp xếp ban đầu của
ma trận A và B
(b) chuyển tất cả các phần tử trong hàng i của ma trận A
qua trái i vị trí và tất cả các phần tử trong cột j của ma
trận B lên trên i vị trí
6
Nhân ma trận lưới 2-D kiểu SIMD (TT)
(b) chuyển tất cả các phần tử trong hàng i của ma
trận A qua trái i vị trí và tất cả các phần tử trong cột
j của ma trận B lên trên i vị trí
(c) sự phân bố của 2 ma trận A và B
sau khi chuyển
7
Nhân ma trận lưới 2-D kiểu
SIMD (TT)
Các bước của thuật toán trong bộ xử lí
8
Nhân ma trận lưới 2-D kiểu SIMD (TT)
Chi tiết thuật toán
Global n,{ kích thước của ma trận}
k:
Local a,b,c:
Begin
for k:=1 to n-1 do
forall P(I,j) where 1 ≤ i,j ≤ n do
if i ≥ k then a:= fromleft(a)
if j ≥ k then b:=fromdown(b);
end forall;
endfor k;

Chuyển 2 ma trận
a[0 n-1,0 n-1] và
b[0 n-1,0 n-1]
9
Nhân ma trận lưới 2-D kiểu SIMD (TT)
forall P(i,j) where 0 ≤i,j < n do
c:= a*b;
end forall;
for k:=1 to n-1 do
forall P(i,j) where 0 ≤i,j < n do
a:= fromleft(a);
b:=fromdown(b);
c:= c + a*b;
end forall;
endfor k;
End.
Compute dot product
10
Thuật toán nhân ma trận cho
bộ đa xử lí

Thiết kế 5

Kích thước hạt cực đại

Kích thước hạt: số lượng công việc giữa các sự tương tác bộ xử lí

Những diều cần được xem xét

Song song vòng ngoài của thuật toán tuần tự là sự lựa chọn tốt từ đó đạt dược kích thước hạt

(0(n
3
/p)) lớn nhất.

Giải quyết tranh chấp bộ nhớ càng nhiều càng tốt
11
Thuật toán nhân ma trận cho bộ đa xử lí
UMA
Global n, {kích thước ma trận}
a[0 n-1,0 n-1], b[0 n-1,0 n-1]; {hai đầu vào ma trận}
c[0 n-1,0 n-1]; {ma trận tích}
Local i,j,k,t;
Begin
forall P
m
where 1 ≤ m ≤ p do
for i:=m to n step p do
for j:= 1 to n to
t:=0;
for k:=1 to n do t:=t+a[i,k]*b[k,j];
endfor j;
c[i][j]:=t;
endfor i;
end forall;
End.
12
Thuật toán nhân ma trận cho bộ đa xử lí NUMA

Những điều cần được xem xét


Cố gắng giải quyết tranh chấp bộ nhớ được càng nhiều càng tốt

Tăng địa chỉ của bộ nhớ liên quan để giảm thời gian truy cập bộ nhớ

Thiết kế 6

Giảm thời gian trễ của bộ nhớ bằng cách tăng địa chỉ

Thuật toán nhân ma trận khối là một sự lựa chọn hợp lí cho trường hợp này
13
Thuật toán nhân ma trận cho nhiều máy

Chúng ta sẽ học 2 thuật toán

Thuật toán đinh hướng hàng - cột

Thuật toán định hướng khối
14
Thuật toán định hướng hàng - cột

Các quy trình được tố chức như một vòng

Bước 1: ban đầu, mỗi quá trình đưa ra một dòng của ma trận A và một cột của ma trận B

Bước 2: mỗi quá trình áp dụng nhân vector để được 1 phần tử của ma trận tích C.

Bước 3: sau khi quá trình đã sử dụng cột của ma trận B, nó lấy cột kế tiếp của B từ phần tử tiếp theo
trong vòng.

Bước 4: nếu tất cả các dòng của B đã được xử lí thì thoát. Nếu không thì quay lại bước 2.

15

Thiết kế 7:

Loại trừ sự đụng độ cho các nguồn tài nguyên được chia sẻ bằng cách thay
đổi thứ tự của dữ liệu truy cập
Thuật toán định hướng hàng - cột
16
Thuật toán định hướng hàng - cột
17
Thuật toán định hướng hàng - cột
18
Thuật toán định hướng hàng - cột
19
Thuật toán định hướng hàng - cột
20
Cảm ơn
thầy và các bạn
đã theo dõi
21

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

Tải bản đầy đủ ngay
×