کتاب استفاده از SIMD instructions در پایتون با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB

دوره جامع محاسبات سطح بالا (HPC) و استفاده از SIMD در پایتون ده‌ها برابر سریع‌تر: دوره جامع محاسبات سطح بالا (HPC) و SIMD در پایتون قدرت پنهان پردازنده خود را آزاد کنید و کدهای پایتون را به سطح جدیدی ...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 87,488 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره استفاده از SIMD instructions در پایتون

موضوع کلی: برنامه نویسی

موضوع میانی: محاسبات سطح بالا (High-Performance Computing)

📋 سرفصل‌های دوره

  • 1. موضوع کلی: برنامه نویسی
  • 2. موضوع میانی: محاسبات سطح بالا (High-Performance Computing)
  • 3. عنوان دوره: استفاده از SIMD instructions در پایتون
  • 4. مقدمه‌ای بر محاسبات سطح بالا (HPC)
  • 5. چرا به محاسبات سطح بالا نیاز داریم؟
  • 6. نقش پایتون در اکوسیستم HPC
  • 7. بررسی چالش‌های عملکردی پایتون
  • 8. مفاهیم اساسی عملکرد: زمان اجرا و پیچیدگی
  • 9. بررسی گلوگاه‌های عملکردی رایج در پایتون
  • 10. معرفی ابزارهای پایه پروفایلینگ در پایتون (`timeit`, `cProfile`)
  • 11. مفاهیم اولیه معماری کامپیوتر برای HPC
  • 12. سلسله مراتب حافظه: کش، RAM، دیسک
  • 13. اثر کش در عملکرد برنامه
  • 14. معرفی واحدهای پردازشی در CPU
  • 15. مفهوم خط لوله (Pipelining) در CPU
  • 16. انواع معماری دستورالعمل (ISA): RISC در مقابل CISC
  • 17. بررسی مجموعه دستورالعمل‌های CPU
  • 18. مفهوم پردازش موازی: تاریخچه و اهمیت
  • 19. انواع موازی‌سازی: بیت، دستورالعمل، داده، تسک
  • 20. موازی‌سازی SIMD در مقابل MIMD
  • 21. معرفی واحد پردازنده برداری (Vector Processor)
  • 22. تفاوت پردازش اسکالر و برداری
  • 23. چرا SIMD برای HPC ضروری است؟
  • 24. تعریف SIMD و اصول کاری آن
  • 25. مزایای استفاده از SIMD: سرعت و بهره‌وری
  • 26. محدودیت‌ها و چالش‌های SIMD
  • 27. مفهوم Vectorization (برداری‌سازی)
  • 28. انواع داده‌های برداری (Vector Data Types)
  • 29. معرفی رجیسترهای SIMD (مانند XMM, YMM, ZMM)
  • 30. عملیات پایه SIMD: جمع، تفریق، ضرب برداری
  • 31. عملیات منطقی و مقایسه برداری در SIMD
  • 32. عملیات Shuffling و Permutation در SIMD
  • 33. مفهوم Blending و Masking در SIMD
  • 34. مقدمه‌ای بر مجموعه دستورالعمل‌های SSE (Streaming SIMD Extensions)
  • 35. بررسی SSE2, SSE3, SSSE3, SSE4.x
  • 36. معرفی AVX (Advanced Vector Extensions)
  • 37. تفاوت‌های AVX و SSE: پهنای رجیستر و عملیات
  • 38. AVX2 و قابلیت‌های جدید آن
  • 39. مقدمه‌ای بر AVX-512 و ویژگی‌های آن
  • 40. تشخیص پشتیبانی SIMD در CPU (CPU-ID)
  • 41. مدیریت حافظه و Alignment برای SIMD
  • 42. تاثیر Cache Line در عملیات SIMD
  • 43. بهینه‌سازی دسترسی به حافظه برای SIMD
  • 44. NumPy: ستون فقرات محاسبات عددی در پایتون
  • 45. آرایه‌های NumPy و ساختار حافظه‌ای آن‌ها
  • 46. مفهوم Universal Functions (Ufuncs) در NumPy
  • 47. Ufuncs چگونه از SIMD استفاده می‌کنند؟ (درون‌گرا)
  • 48. Broadcasting در NumPy برای عملیات برداری
  • 49. عملیات ریاضی پایه با NumPy و کارایی آن
  • 50. استفاده از عملیات کاهشی (Reduction Operations) NumPy
  • 51. فیلتر کردن و ایندکس‌گذاری پیشرفته در NumPy
  • 52. بهینه‌سازی کد پایتون با رویکرد "NumPy-centric"
  • 53. SciPy: مجموعه ابزارهای علمی مبتنی بر NumPy
  • 54. ماژول‌های مهم SciPy برای HPC
  • 55. مثال: پردازش تصویر پایه با NumPy/SciPy و SIMD (غیرمستقیم)
  • 56. مثال: حل سیستم معادلات خطی با NumPy/SciPy و SIMD
  • 57. محدودیت‌های NumPy برای دسترسی مستقیم به SIMD
  • 58. چه زمانی NumPy کافی نیست؟
  • 59. چرایی نیاز به C/C++ برای دسترسی به SIMD در پایتون
  • 60. معرفی `ctypes`: فراخوانی توابع C از پایتون
  • 61. تعریف انواع داده C در `ctypes`
  • 62. ارسال آرایه‌ها و اشاره‌گرها به توابع C با `ctypes`
  • 63. نوشتن یک ماژول C ساده برای فراخوانی از پایتون
  • 64. معرفی `cffi`: رابط تابع خارجی برای C
  • 65. تفاوت‌های `cffi` و `ctypes`
  • 66. استفاده از `cffi` برای فراخوانی توابع C
  • 67. مدیریت حافظه در `cffi`
  • 68. معرفی Cython: ترکیب پایتون و C
  • 69. نصب و کامپایل کردن کد Cython
  • 70. تایپ کردن (Type Hinting) در Cython برای کارایی بالاتر
  • 71. دسترسی به آرایه‌های NumPy از Cython (MemoryViews)
  • 72. فراخوانی توابع C از Cython
  • 73. نوشتن توابع بهینه با Cython
  • 74. معرفی Numba: کامپایلر JIT برای پایتون
  • 75. نصب Numba و محیط کاری آن
  • 76. دکوراتورهای Numba: `@jit` و `@njit`
  • 77. Numba و بهینه‌سازی حلقه‌های پایتون
  • 78. پشتیبانی Numba از آرایه‌های NumPy
  • 79. Numba و خودکارسازی SIMD (Auto-vectorization)
  • 80. Numba `@vectorize`: ایجاد Ufuncهای سفارشی
  • 81. Numba `@guvectorize`: برداری‌سازی تعمیم‌یافته
  • 82. تفاوت Numba با Cython برای بهینه‌سازی عملکرد
  • 83. اشکال‌زدایی (Debugging) کد Numba
  • 84. مفهوم Intrinsics در SIMD
  • 85. نحوه استفاده از Intrinsics در C/C++
  • 86. Intrinsics برای SSE: مثال `_mm_add_ps`
  • 87. Intrinsics برای AVX: مثال `_mm256_mul_ps`
  • 88. Intrinsics برای AVX-512 (مقدماتی)
  • 89. مدیریت حافظه و Alignment با Intrinsics
  • 90. تبدیل داده (Casting) در Intrinsics SIMD
  • 91. ترکیب Intrinsics با Cython: پیاده‌سازی یک هسته SIMD
  • 92. ترکیب Intrinsics با `ctypes`/`cffi`: بارگذاری کتابخانه‌های SIMD
  • 93. توسعه یک عملیات پیچیده با Intrinsics SIMD (مثلاً Convolution)
  • 94. تکنیک‌های پیشرفته Alignment در پایتون و C Extensions
  • 95. Loop Unrolling برای بهبود بهره‌وری SIMD
  • 96. مدیریت Caching و Prefetching در کدهای SIMD
  • 97. موازی‌سازی با OpenMP در C (برای استفاده در Cython/Cffi)
  • 98. استفاده از `perf` و `VTune` برای پروفایلینگ عمیق SIMD
  • 99. ابزارهای دیس‌اسمبلی (Disassembly) برای بررسی دستورالعمل‌های SIMD
  • 100. انتخاب بهترین رویکرد: NumPy, Numba, Cython, C Intrinsics
تگ‌ها: High-Performance Computing HPC پایتون SIMD instructions simd python SIMD پایتون vectorized programming آموزش SIMD آموزش برنامه نویسی برنامه نویسی برنامه نویسی پایتون بهینه سازی پایتون پایتون سریع عملکرد پایتون محاسبات سطح بالا محاسبات سنگین

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.