SlideShare a Scribd company logo
‫خدا‬ ‫نام‬ ‫به‬
BLAS
‫محجوب‬ ‫علی‬
Basic Linear Algebra Subprograms
(
BLAS
: )
◦
‫مشخصاتی‬
‫ضرب‬ ،‫برداری‬ ‫جمع‬ ‫مانند‬ ‫رایج‬ ‫خطی‬ ‫جبر‬ ‫عملیات‬ ‫انجام‬ ‫برای‬ ‫را‬ ‫پایین‬ ‫سطح‬ ‫های‬ ‫روال‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ‫که‬ ‫است‬
‫کند‬ ‫می‬ ‫تجویز‬ ‫ماتریس‬ ‫ضرب‬ ‫و‬ ‫خطی‬ ‫های‬ ‫ترکیب‬ ،‫ای‬ ‫نقطه‬ ‫ضرب‬ ،‫اسکالر‬
.
◦
‫هستند‬ ‫خطی‬ ‫جبر‬ ‫های‬ ‫کتابخانه‬ ‫برای‬ ‫بالفعل‬ ‫استاندارد‬ ‫پایین‬ ‫سطح‬ ‫های‬ ‫روال‬ ‫آنها‬
.
‫برای‬ ‫اتصاالتی‬ ‫دارای‬ ‫ها‬ ‫روال‬
C
("CBLAS interface")
‫و‬
Fortran
("BLAS interface")
‫هستند‬
.
◦
‫اگرچه‬
‫مشخصات‬
BLAS
‫های‬‫سازی‬‫پیاده‬ ،‫است‬ ‫عمومی‬
BLAS
،‫شوند‬‫می‬ ‫سازی‬‫بهینه‬ ‫خاص‬ ‫ماشین‬ ‫یک‬ ‫در‬ ‫سرعت‬ ‫برای‬ ‫اغلب‬
‫باشد‬ ‫داشته‬ ‫همراه‬ ‫به‬ ‫را‬ ‫توجهی‬‫قابل‬ ‫عملکرد‬ ‫مزایای‬ ‫تواند‬‫می‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫بنابراین‬
.
◦
‫های‬ ‫سازی‬ ‫پیاده‬
BLAS
‫های‬ ‫دستورالعمل‬ ‫یا‬ ‫برداری‬ ‫های‬ ‫ثبات‬ ‫مانند‬ ‫ویژه‬ ‫شناور‬ ‫ممیز‬ ‫افزار‬ ‫سخت‬ ‫از‬
SIMD
‫برند‬ ‫می‬ ‫بهره‬
.

‫رابط‬ ‫با‬ ،‫دهند‬‫می‬ ‫ارائه‬ ‫را‬ ‫خطی‬ ‫جبر‬ ‫های‬‫روال‬ ‫که‬ ‫هایی‬‫کتابخانه‬ ‫اکثر‬
BLAS
‫دهند‬‫می‬ ‫اجازه‬ ‫کتابخانه‬ ‫کاربران‬ ‫به‬ ‫و‬ ‫دارند‬ ‫مطابقت‬
‫کتابخانه‬ ‫به‬ ‫نسبت‬ ‫که‬ ‫دهند‬ ‫توسعه‬ ‫را‬ ‫هایی‬‫برنامه‬
BLAS
‫هستند‬ ‫تفاوت‬‫بی‬ ‫استفاده‬ ‫مورد‬
.

‫بر‬ ‫مبتنی‬ ‫های‬‫نمونه‬
CPU
‫های‬‫کتابخانه‬ ‫از‬
BLAS
‫از‬ ‫عبارتند‬
:

BLIS

OpenBLAS
(
‫به‬ ‫شبیه‬ ‫ای‬‫کتابخانه‬ ‫سازی‬‫نمونه‬ ‫افزار‬‫نرم‬
BLAS
)

‫های‬‫کتابخانه‬
Arm Performance

ATLAS

‫کتابخانه‬
‫اینتل‬ ‫ریاضی‬ ‫هسته‬
(
MKL
)
‫کارکرد‬
◦
‫عملکرد‬
BLAS
‫نام‬ ‫به‬ ‫روتین‬ ‫مجموعه‬ ‫سه‬ ‫به‬
"
‫سطوح‬
"
‫درج‬ ‫با‬ ‫هم‬ ‫و‬ ‫انتشار‬ ‫و‬ ‫تعریف‬ ‫زمانی‬ ‫ترتیب‬ ‫با‬ ‫هم‬ ‫که‬ ‫شود‬ ‫می‬ ‫بندی‬ ‫طبقه‬
‫چند‬ ‫ه‬
‫های‬ ‫پیچیدگی‬ ‫در‬ ‫ای‬ ‫جمله‬
‫الگوریتم‬
‫دارد‬ ‫مطابقت‬ ‫ها‬
.
◦
BLAS
‫سطح‬
1
،‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫بردار‬ ‫و‬ ‫برداری‬ ،‫اسکالر‬ ‫عملیات‬
BLAS
‫سطح‬
2
‫ماتریس‬ ‫عملیات‬
-
‫و‬ ‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫بردار‬
BLAS
‫سطح‬
3
‫ماتریس‬ ‫عملیات‬
-
‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫ماتریس‬
.
◦
‫سطح‬ ‫عملیات‬
1
BLAS
،‫خطی‬ ‫زمان‬ ً‫ال‬‫معمو‬
O(n)
،
‫سطح‬ ‫عملیات‬
2
‫سطح‬ ‫عملیات‬ ‫و‬ ‫دوم‬ ‫درجه‬ ‫زمان‬
3
‫مکعب‬ ‫زمان‬
‫است‬
.
‫پیاده‬
‫مدرن‬ ‫های‬ ‫سازی‬
BLAS
‫دهند‬ ‫می‬ ‫ارائه‬ ‫را‬ ‫سطح‬ ‫سه‬ ‫هر‬ ً‫ال‬‫معمو‬
.
◦ Level 1: Vector-vector operations. O(n) data and O(n) work.
◦ Level 2: Matrix-vector operations. O(n^2) data and O(n^2) work.
◦ Level 3: Matrix-matrix operations. O(n^2) data and O(n^3) work.
‫های‬ ‫زیربرنامه‬ ‫از‬ ‫برخی‬
BLAS 1
‫از‬ ‫عبارتند‬
:
•
xCOPY
:
‫یک‬
‫کپی‬ ‫دیگر‬ ‫بردار‬ ‫به‬ ‫را‬ ‫بردار‬
‫کنید‬
•
xSWAP
:
‫دو‬
‫مبادله‬ ‫را‬ ‫بردار‬
‫کنید‬
•
xSCAL
:
‫مقیاس‬
‫یک‬ ‫با‬ ‫بردار‬ ‫یک‬
‫ثابت‬
•
xAXPY
:
‫مضرب‬
‫بردار‬ ‫یک‬
‫را‬
‫اضافه‬ ‫دیگر‬ ‫بردار‬ ‫به‬
‫کنید‬
‫های‬ ‫زیربرنامه‬ ‫از‬ ‫برخی‬
BLAS 2
‫از‬ ‫عبارتند‬
:
•
xGEMV
:
‫ماتریس‬ ‫ضرب‬
-
‫کلی‬ ‫بردار‬
•
xTRSV
:
‫حل‬
‫از‬ ‫مثلثی‬ ‫سیستم‬ ‫یک‬
‫معادالت‬
‫های‬ ‫زیربرنامه‬ ‫از‬ ‫برخی‬
BLAS 3
‫از‬ ‫عبارتند‬
:
•
xGEMM
:
‫ضرب‬
‫ماتریس‬
-
‫ماتریس‬
‫عمومی‬
•
xSYRK
:
‫به‬
‫رتبه‬ ‫رسانی‬ ‫روز‬
-
k
‫متقارن‬

More Related Content

Similar to BLAS.pptx

Network Load Balancing (NLB)
Network Load Balancing (NLB)Network Load Balancing (NLB)
Network Load Balancing (NLB)
ali torabi
 
پروژه مسیریاب
پروژه مسیریابپروژه مسیریاب
پروژه مسیریاب
arichoana
 
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
tahereh sharafi
 
پروژه مسيرياب
پروژه مسيريابپروژه مسيرياب
پروژه مسيرياب
arichoana
 
Neural networks
Neural networksNeural networks
Neural networks
Meysam Asadi
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
aminifar
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
aminifar
 
پیش مقدمه آموزش نرم افزار متلب
پیش مقدمه آموزش نرم افزار متلبپیش مقدمه آموزش نرم افزار متلب
پیش مقدمه آموزش نرم افزار متلب
Technical University of Denamrk
 
Odbc in linux
Odbc in linux Odbc in linux
Odbc in linux
Yashar Esmaildokht
 
Load Balancing-as-a-Service (LBaaS) with octavia in openstack
Load Balancing-as-a-Service (LBaaS) with octavia in openstackLoad Balancing-as-a-Service (LBaaS) with octavia in openstack
Load Balancing-as-a-Service (LBaaS) with octavia in openstack
Yashar Esmaildokht
 

Similar to BLAS.pptx (11)

Network Load Balancing (NLB)
Network Load Balancing (NLB)Network Load Balancing (NLB)
Network Load Balancing (NLB)
 
پروژه مسیریاب
پروژه مسیریابپروژه مسیریاب
پروژه مسیریاب
 
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
 
پروژه مسيرياب
پروژه مسيريابپروژه مسيرياب
پروژه مسيرياب
 
Neural networks
Neural networksNeural networks
Neural networks
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
 
khazeni_taghizade
khazeni_taghizadekhazeni_taghizade
khazeni_taghizade
 
پیش مقدمه آموزش نرم افزار متلب
پیش مقدمه آموزش نرم افزار متلبپیش مقدمه آموزش نرم افزار متلب
پیش مقدمه آموزش نرم افزار متلب
 
Odbc in linux
Odbc in linux Odbc in linux
Odbc in linux
 
Load Balancing-as-a-Service (LBaaS) with octavia in openstack
Load Balancing-as-a-Service (LBaaS) with octavia in openstackLoad Balancing-as-a-Service (LBaaS) with octavia in openstack
Load Balancing-as-a-Service (LBaaS) with octavia in openstack
 

BLAS.pptx

  • 2. Basic Linear Algebra Subprograms ( BLAS : ) ◦ ‫مشخصاتی‬ ‫ضرب‬ ،‫برداری‬ ‫جمع‬ ‫مانند‬ ‫رایج‬ ‫خطی‬ ‫جبر‬ ‫عملیات‬ ‫انجام‬ ‫برای‬ ‫را‬ ‫پایین‬ ‫سطح‬ ‫های‬ ‫روال‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ‫که‬ ‫است‬ ‫کند‬ ‫می‬ ‫تجویز‬ ‫ماتریس‬ ‫ضرب‬ ‫و‬ ‫خطی‬ ‫های‬ ‫ترکیب‬ ،‫ای‬ ‫نقطه‬ ‫ضرب‬ ،‫اسکالر‬ . ◦ ‫هستند‬ ‫خطی‬ ‫جبر‬ ‫های‬ ‫کتابخانه‬ ‫برای‬ ‫بالفعل‬ ‫استاندارد‬ ‫پایین‬ ‫سطح‬ ‫های‬ ‫روال‬ ‫آنها‬ . ‫برای‬ ‫اتصاالتی‬ ‫دارای‬ ‫ها‬ ‫روال‬ C ("CBLAS interface") ‫و‬ Fortran ("BLAS interface") ‫هستند‬ . ◦ ‫اگرچه‬ ‫مشخصات‬ BLAS ‫های‬‫سازی‬‫پیاده‬ ،‫است‬ ‫عمومی‬ BLAS ،‫شوند‬‫می‬ ‫سازی‬‫بهینه‬ ‫خاص‬ ‫ماشین‬ ‫یک‬ ‫در‬ ‫سرعت‬ ‫برای‬ ‫اغلب‬ ‫باشد‬ ‫داشته‬ ‫همراه‬ ‫به‬ ‫را‬ ‫توجهی‬‫قابل‬ ‫عملکرد‬ ‫مزایای‬ ‫تواند‬‫می‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫بنابراین‬ . ◦ ‫های‬ ‫سازی‬ ‫پیاده‬ BLAS ‫های‬ ‫دستورالعمل‬ ‫یا‬ ‫برداری‬ ‫های‬ ‫ثبات‬ ‫مانند‬ ‫ویژه‬ ‫شناور‬ ‫ممیز‬ ‫افزار‬ ‫سخت‬ ‫از‬ SIMD ‫برند‬ ‫می‬ ‫بهره‬ .
  • 3.  ‫رابط‬ ‫با‬ ،‫دهند‬‫می‬ ‫ارائه‬ ‫را‬ ‫خطی‬ ‫جبر‬ ‫های‬‫روال‬ ‫که‬ ‫هایی‬‫کتابخانه‬ ‫اکثر‬ BLAS ‫دهند‬‫می‬ ‫اجازه‬ ‫کتابخانه‬ ‫کاربران‬ ‫به‬ ‫و‬ ‫دارند‬ ‫مطابقت‬ ‫کتابخانه‬ ‫به‬ ‫نسبت‬ ‫که‬ ‫دهند‬ ‫توسعه‬ ‫را‬ ‫هایی‬‫برنامه‬ BLAS ‫هستند‬ ‫تفاوت‬‫بی‬ ‫استفاده‬ ‫مورد‬ .  ‫بر‬ ‫مبتنی‬ ‫های‬‫نمونه‬ CPU ‫های‬‫کتابخانه‬ ‫از‬ BLAS ‫از‬ ‫عبارتند‬ :  BLIS  OpenBLAS ( ‫به‬ ‫شبیه‬ ‫ای‬‫کتابخانه‬ ‫سازی‬‫نمونه‬ ‫افزار‬‫نرم‬ BLAS )  ‫های‬‫کتابخانه‬ Arm Performance  ATLAS  ‫کتابخانه‬ ‫اینتل‬ ‫ریاضی‬ ‫هسته‬ ( MKL )
  • 4. ‫کارکرد‬ ◦ ‫عملکرد‬ BLAS ‫نام‬ ‫به‬ ‫روتین‬ ‫مجموعه‬ ‫سه‬ ‫به‬ " ‫سطوح‬ " ‫درج‬ ‫با‬ ‫هم‬ ‫و‬ ‫انتشار‬ ‫و‬ ‫تعریف‬ ‫زمانی‬ ‫ترتیب‬ ‫با‬ ‫هم‬ ‫که‬ ‫شود‬ ‫می‬ ‫بندی‬ ‫طبقه‬ ‫چند‬ ‫ه‬ ‫های‬ ‫پیچیدگی‬ ‫در‬ ‫ای‬ ‫جمله‬ ‫الگوریتم‬ ‫دارد‬ ‫مطابقت‬ ‫ها‬ . ◦ BLAS ‫سطح‬ 1 ،‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫بردار‬ ‫و‬ ‫برداری‬ ،‫اسکالر‬ ‫عملیات‬ BLAS ‫سطح‬ 2 ‫ماتریس‬ ‫عملیات‬ - ‫و‬ ‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫بردار‬ BLAS ‫سطح‬ 3 ‫ماتریس‬ ‫عملیات‬ - ‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫ماتریس‬ . ◦ ‫سطح‬ ‫عملیات‬ 1 BLAS ،‫خطی‬ ‫زمان‬ ً‫ال‬‫معمو‬ O(n) ، ‫سطح‬ ‫عملیات‬ 2 ‫سطح‬ ‫عملیات‬ ‫و‬ ‫دوم‬ ‫درجه‬ ‫زمان‬ 3 ‫مکعب‬ ‫زمان‬ ‫است‬ . ‫پیاده‬ ‫مدرن‬ ‫های‬ ‫سازی‬ BLAS ‫دهند‬ ‫می‬ ‫ارائه‬ ‫را‬ ‫سطح‬ ‫سه‬ ‫هر‬ ً‫ال‬‫معمو‬ . ◦ Level 1: Vector-vector operations. O(n) data and O(n) work. ◦ Level 2: Matrix-vector operations. O(n^2) data and O(n^2) work. ◦ Level 3: Matrix-matrix operations. O(n^2) data and O(n^3) work.
  • 5. ‫های‬ ‫زیربرنامه‬ ‫از‬ ‫برخی‬ BLAS 1 ‫از‬ ‫عبارتند‬ : • xCOPY : ‫یک‬ ‫کپی‬ ‫دیگر‬ ‫بردار‬ ‫به‬ ‫را‬ ‫بردار‬ ‫کنید‬ • xSWAP : ‫دو‬ ‫مبادله‬ ‫را‬ ‫بردار‬ ‫کنید‬ • xSCAL : ‫مقیاس‬ ‫یک‬ ‫با‬ ‫بردار‬ ‫یک‬ ‫ثابت‬ • xAXPY : ‫مضرب‬ ‫بردار‬ ‫یک‬ ‫را‬ ‫اضافه‬ ‫دیگر‬ ‫بردار‬ ‫به‬ ‫کنید‬ ‫های‬ ‫زیربرنامه‬ ‫از‬ ‫برخی‬ BLAS 2 ‫از‬ ‫عبارتند‬ : • xGEMV : ‫ماتریس‬ ‫ضرب‬ - ‫کلی‬ ‫بردار‬ • xTRSV : ‫حل‬ ‫از‬ ‫مثلثی‬ ‫سیستم‬ ‫یک‬ ‫معادالت‬ ‫های‬ ‫زیربرنامه‬ ‫از‬ ‫برخی‬ BLAS 3 ‫از‬ ‫عبارتند‬ : • xGEMM : ‫ضرب‬ ‫ماتریس‬ - ‫ماتریس‬ ‫عمومی‬ • xSYRK : ‫به‬ ‫رتبه‬ ‫رسانی‬ ‫روز‬ - k ‫متقارن‬