TGViewer
HPC Nerds | High Performance and Scientific Computing HPC Nerds | High Performance and Scientific Computing @hpcnerds · 243 subscribers
Post #29 368
دلیل سرعت کتابخانه هایی مثل BLAS چیه؟

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

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

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

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

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



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

@hpcnerds
  • 👍 4
  • ❤ 1
  • 🤨 1
More from @hpcnerds
  1. Jun 10, 2024قراره یک ورکشاپ یک روزه در مورد کاربرد های Julia در HPC توسط Oak Ridge National Laboratory…
  2. Jun 6, 2024این تیکه کد رو ببینید، وقتی اجرا بشه 7 تا عمل ضرب انجام میده: x = x*x*x*x*x*x*x*x; به صورت…
  3. Jun 1, 2024قبلا در مورد BLAS گفتم یکی از تکنیک هایی که پیاده سازی های سریع ازش استفاده قابل توجهی کرد…
  4. May 31, 2024در ایران برای دسترسی به سرور های محاسبات سنگین چه گزینه هایی داریم؟ فرض کنید که یک پروژه د…
  5. May 31, 2024چند سالی میشه که Intel داره روی یک مجموعه ابزار مخصوص HPC کار میکنه به نام oneAPI . بعضی ا…
  6. May 30, 2024برای سال ها محبوب ترین استاندارد برای انجام محاسبات توزیع شده MPI بوده. یکی از پروژه های ک…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →