HPCNERDS Telegram 29
دلیل سرعت کتابخانه هایی مثل BLAS چیه؟

دو روز پیش یک پست برای معرفی کلی استاندارد BLAS نوشتم.

کد بالا رو ببینید، فرض کنید هدفمون اینه که دو تا بردار رو با هم جمع کنیم. تابع اول یک روش بدیهی برای انجام این کار رو نشون میده و تابع دوم از OpenBLAS برای انجامش استفاده می‌کنه.

وقتی دو بردار به طول یک میلیارد رو با هر کدوم از این دو تا جمع کردم، پیاده سازی BLAS تقریبا 5.5 برابر سریع تر بود. اینم بگم که قبل از اجرا تعداد thread هایی که BLAS می‌تونه استفاده کنه رو به یک محدود کردم، پس این افزایش سرعت حاصل از multi threading نیست.

پس دقیقا چی شده 🤔؟
اغلب CPU ها در سطح سخت افزاری میتونن یک دستور رو همزمان روی چندتا داده کنار هم اجرا کنند که به این کار SIMD یا single instruction multiple data میگن. بسته به نوع CPU تو مثال ما اینکار می‌تونه افزایش سرعت 5 تا 10 برابری به همراه داشته باشه.

پیاده سازی های BLAS با ترکیب این تکنیک و multi-threading و استفاده بهینه از cache به همچین سرعتی دست پیدا میکنن



🔴 نگیم جمع دوتا بردار که کاری نداره از کد خودم استفاده میکنم
🔴 سخت افزاری که روش می‌نویسیم رو خوب بشناسیم

@hpcnerds
👍41🤨1



tgoop.com/hpcnerds/29
Create:
Last Update:

دلیل سرعت کتابخانه هایی مثل BLAS چیه؟

دو روز پیش یک پست برای معرفی کلی استاندارد BLAS نوشتم.

کد بالا رو ببینید، فرض کنید هدفمون اینه که دو تا بردار رو با هم جمع کنیم. تابع اول یک روش بدیهی برای انجام این کار رو نشون میده و تابع دوم از OpenBLAS برای انجامش استفاده می‌کنه.

وقتی دو بردار به طول یک میلیارد رو با هر کدوم از این دو تا جمع کردم، پیاده سازی BLAS تقریبا 5.5 برابر سریع تر بود. اینم بگم که قبل از اجرا تعداد thread هایی که BLAS می‌تونه استفاده کنه رو به یک محدود کردم، پس این افزایش سرعت حاصل از multi threading نیست.

پس دقیقا چی شده 🤔؟
اغلب CPU ها در سطح سخت افزاری میتونن یک دستور رو همزمان روی چندتا داده کنار هم اجرا کنند که به این کار SIMD یا single instruction multiple data میگن. بسته به نوع CPU تو مثال ما اینکار می‌تونه افزایش سرعت 5 تا 10 برابری به همراه داشته باشه.

پیاده سازی های BLAS با ترکیب این تکنیک و multi-threading و استفاده بهینه از cache به همچین سرعتی دست پیدا میکنن



🔴 نگیم جمع دوتا بردار که کاری نداره از کد خودم استفاده میکنم
🔴 سخت افزاری که روش می‌نویسیم رو خوب بشناسیم

@hpcnerds

BY HPC Nerds | High Performance and Scientific Computing




Share with your friend now:
tgoop.com/hpcnerds/29

View MORE
Open in Telegram


Telegram News

Date: |

How to create a business channel on Telegram? (Tutorial) In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. 1What is Telegram Channels? Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. How to create a business channel on Telegram? (Tutorial)
from us


Telegram HPC Nerds | High Performance and Scientific Computing
FROM American