کتاب GPU-Accelerated Computing with Python 3 and CUDA: From low-level kernels to real-world applications in scientific computing and machine learning (محاسبات شتابیافته با GPU با استفاده از پایتون ۳ و CUDA: از کرنلهای سطح پایین تا کاربردهای واقعی در محاسبات علمی و یادگیری ماشین) راهنمایی عملی برای برنامهنویسان پایتون، مهندسان و دانشمندان داده است تا بتوانند بدون نیاز به ترک پایتون و یادگیری زبانهایی مثل ++C، از قدرت پردازش موازی کارتهای گرافیک NVIDIA با استفاده از پلتفرم CUDA بهره ببرند.
در ادامه مقدمهای از کتاب GPU-Accelerated Computing with Python 3 and CUDA را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب GPU-Accelerated Computing with Python 3 and CUDA:
محاسبات همهمنظوره روی GPU (GPGPU) انقلابی در حوزههای علمی و مهندسی ایجاد کرده و پیشرفتهایی در فیزیک، شیمی، یادگیری ماشین و فراتر از آن به همراه داشته است. CUDA، بهعنوان چارچوب پیشرو GPGPU، پایهوبنیان این دستاوردهای بزرگ—از جمله انقلاب هوش مصنوعی و ظهور مدلهای زبانی بزرگ—را تشکیل میدهد.
تا همین اواخر، برنامهنویسی GPU در حوزهٔ تخصصی مهندسان نرمافزار حرفهای با دانش عمیق از C/C++ و سختافزار GPU باقی مانده بود. با این حال، تلاش NVIDIA برای ادغام اولیههای سطح پایین CUDA مستقیماً در پایتون—که به پروژهٔ CUDA Python 2025 منجر شده است—این پارادایم را به چالش میکشد. این قابلیت، همراه با اکوسیستم RAPIDS که جایگزینهای شتابیافته با GPU را برای کتابخانههای آشنا پایتون ارائه میدهد، باعث شده تا برنامهنویسی GPU برای دانشمندان داده، پژوهشگران و توسعهدهندگان پایتون—بدون نیاز به ترک محیط راحت پایتون—دستیافتنی شود.
کتاب GPU-Accelerated Computing with Python 3 and CUDA دربارهٔ پرکردن شکاف بین برنامهنویسی سطح پایین GPU و ابزارهای سطح بالای پایتون است. نیمهٔ اول بر اصول CUDA با استفاده از Numba-CUDA و با تأکید بر کارایی و پروفایلینگ متمرکز است. نیمهٔ دوم بر این پایهها استوار شده و کتابخانههای سطح بالای اکوسیستمهای RAPIDS و JAX را بررسی میکند. فصلهای پایانی کتاب GPU-Accelerated Computing with Python 3 and CUDA همه مفاهیم را از طریق کاربردهای عملی در حوزههای مختلف گرد هم میآورند و هم قدرت و هم محدودیتهای GPGPU را نشان میدهند.
هدف ما این است که محاسبات GPU را برای همه برنامهنویسان پایتون، فراتر از صرفاً استفاده از یک چارچوب سطح بالای یادگیری ماشین، دستیافتنی کنیم و به شما این توانایی را بدهیم که از پتانسیل آن در کار خود بهره ببرید.
کتاب GPU-Accelerated Computing with Python 3 and CUDA برای چه کسانی است؟
این کتاب برای توسعهدهندگان پایتون، دانشمندان داده، مهندسان و پژوهشگرانی است که میخواهند محاسبات عددی را با استفاده از GPU شتاب دهند، بدون اینکه نیاز به تسلط بر C/C++ داشته باشند. اگر شما یک متخصص حوزه هستید که برای محاسبات علمی یا کارهای دادهمحور به پایتون متکی هستید و به کنترلی دقیقتر از آنچه چارچوبهای سطح بالا ارائه میدهند نیاز دارید، این کتاب به شما کمک خواهد کرد تا کارایی GPU را آزاد کنید و اصول شتابدهی سختافزاری را درک کنید.
بیشترین بهره را از کتاب GPU-Accelerated Computing with Python 3 and CUDA خواهید برد اگر موارد زیر در مورد شما صدق کند:
- با برنامهنویسی پایتون و اکوسیستم علمی پایتون (NumPy، pandas، SciPy و Matplotlib) تجربه دارید و از اجرای برنامههای خط فرمان راحت هستید
- پیشزمینهای در ریاضیات، فیزیک یا علوم کامپیوتر دارید که شامل آشنایی با جبر خطی و حساب دیفرانسیل و انتگرال است
- مفاهیم پایهٔ محاسباتی مانند حافظه، پوینترها و آرایهها را درک میکنید
کتاب GPU-Accelerated Computing with Python 3 and CUDA شکاف بین ابزارهای سطح بالا و کنترل سطح پایین را پر میکند و به شما امکان میدهد کدهای GPU کارا و با عملکرد بالا را بنویسید، همه اینها درحالیکه همچنان در پایتون باقی میمانید.
آنچه در کتاب GPU-Accelerated Computing with Python 3 and CUDA پوشش داده میشود
فصل ۱ – چرا برنامهنویسی GPU با CUDA در پایتون ۳؟
GPGPU و چگونگی دستیابی GPUها به سرعت چشمگیر محاسباتی از طریق موازیسازی عظیم را معرفی میکند. بقیهٔ فصل مزایا و محدودیتهای موازیسازی را با استفاده از تئوری (مانند قانون آمدال) و عمل (پروفایلینگ) بررسی میکند.
فصل ۲ – راهاندازی محیط برنامهنویسی GPU بهصورت محلی و در ابر
شما را در فرآیند راهاندازی یک محیط توسعه با Pixi برای کار با CUDA در پایتون، چه روی ماشین محلی (ویندوز، WSL یا لینوکس) و چه در ابر (Google Colab، Lambda Labs یا ماشین مجازی EC2 در AWS) راهنمایی میکند.
فصل ۳ – نوشتن و اجرای کرنلهای CUDA با Numba-CUDA
توسعهٔ کرنلهای CUDA را با استفاده از بکاند CUDA برای Numba (کامپایلر JIT پایتون) پوشش میدهد. همهٔ عناصر پایهٔ مدل برنامهنویسی CUDA شامل کرنلها، پیکربندی راهاندازی کرنل (گریدها، بلاکها و تردها)، توابع دستگاه، انتقال داده میزبان-دستگاه، همگامسازی تردها و عملیات اتمی پوشش داده میشوند. علاوه بر این، ویژگیهای خاص Numba-CUDA مانند دکوراتور vectorize نیز پوشش داده میشود.
فصل ۴ – پروفایلینگ و دیباگ کردن کد CUDA
چندین پروفایلر برای بررسی کارایی کد CUDA در پایتون معرفی میکند، شامل قابلیت زمانبندی توکار پایتون، Scalene، Nsight Systems برای پروفایلینگ در سطح برنامه و سیستم، و Nsight Compute برای پروفایلینگ جزئی در سطح کرنل. همچنین تکنیکهای دیباگ مانند چاپ از درون یک کرنل CUDA و شبیهسازی اجرای GPU روی CPU پوشش داده میشود.
فصل ۵ – بهینهسازی کارایی کد CUDA
سختافزار GPU و مدل اجرایی CUDA را بررسی کرده و زمینه را برای شناسایی تنگناهای رایج در برنامههای CUDA فراهم میکند. اصول اصلی بهینهسازی کارایی شامل بیشینه کردن اشغال (occupancy)، پنهان کردن تأخیر از طریق موازیسازی، و طراحی الگوهای کارآمد دسترسی به حافظه پوشش داده میشود. از پروفایلینگ کرنل برای نشان دادن تأثیر آنها استفاده میشود.
فصل ۶ – فعالسازی همزمانی با استفاده از استریمهای CUDA
نشان میدهد که چگونه میتوان از استریمهای CUDA به همراه Numba-CUDA برای انجام همزمان انتقال داده و محاسبات استفاده کرد، بنابراین کارایی برخی برنامهها را بهبود بخشید. چندین دام مرتبط با همگامسازی ضمنی نشان داده میشود. در نهایت، همگامسازی بین استریمها از طریق رویدادهای CUDA نیز نشان داده میشود.
فصل ۷ – مقیاسپذیری به چندین GPU
محاسبات چند GPU را معرفی کرده و موارد استفادهٔ کلیدی را توضیح میدهد. ابتدا، اصل با مدیریت صریح چندین دستگاه با Numba-CUDA در سطح پایین نشان داده میشود. سپس، گردشکارهای عملی چند GPU در پایتون با استفاده از Dask-CUDA و JAX نشان داده میشود.
فصل ۸ – آوردن NumPy و SciPy به GPU با CuPy
نشان میدهد که چگونه میتوان عملیات سطح بالا شبیه NumPy و SciPy را روی GPU با استفاده از کتابخانهٔ CuPy اجرا کرد. API کتابخانهٔ CuPy و همچنین نحوهٔ تعامل CuPy با کتابخانههای دیگر مانند Numba-CUDA پوشش داده میشود. نکات مربوط به کارایی و همچنین ترفندهایی برای نوشتن کد مستقل از GPU پوشش داده میشود.
فصل ۹ – آوردن pandas و scikit-learn به GPU با RAPIDS
کتابخانههای cuDF و cuML از اکوسیستم RAPIDS را معرفی میکند تا علم داده را روی GPU با استفاده از گردشکارهای آشنا pandas و scikit-learn انجام دهید. فصل اصول API cuDF و cuML را پوشش داده و یک مثال عملی از یک مورد استفادهٔ رگرسیون در علم داده را حل میکند.
فصل ۱۰ – حل مسائل بهینهسازی روی GPU با JAX
JAX را به عنوان یک چارچوب قدرتمند برای بهینهسازی معرفی کرده و ویژگیهای کلیدی آن را برجسته میسازد: کامپایل JIT، تمایز خودکار (automatic differentiation) و برداریسازی. JAX با حل یک مسئلهٔ رگرسیون خطی، ساختن یک شبکهٔ عصبی از صفر، و مدلسازی یک مدار الکتریکی با استفاده از یک شبکهٔ عصبی مبتنی بر فیزیک (PINN) به نمایش گذاشته میشود.
فصل ۱۱ – حل معادلهٔ گرما روی GPU
فصلی کاربردی است که به معادلهٔ لاپلاس گرما (یک معادلهٔ دیفرانسیل با مشتقات جزئی مرتبه دوم بنیادین) با استفاده از روش تفاضلات محدود میپردازد. فصل یازدهم کتاب GPU-Accelerated Computing with Python 3 and CUDA گسستهسازی و شرایط مرزی را پوشش داده و از یک پیادهسازی روی CPU به نسخهٔ شتابیافته با GPU با استفاده از Numba-CUDA پیش میرود. فصل با پروفایل کردن کرنل GPU برای شناسایی تنگناهای کارایی به پایان میرسد.
فصل ۱۲ – پردازش تصویر و بینایی کامپیوتر روی GPU
اصول پردازش تصویر روی GPU را با استفاده از هم کرنلهای Numba-CUDA و هم کتابخانههای سطح بالا مانند cuCIM (از RAPIDS) بررسی میکند. یک فیلتر پیچش فضایی برای محو کردن و تشخیص لبه پیادهسازی و سپس پروفایل میشود. سپس، یک وظیفهٔ تشخیص شیء در دنیای واقعی با استفاده از چندین تکنیک برای بخشبندی و طبقهبندی اشیاء در یک تصویر انجام میشود. سه رویکرد طبقهبندی مقایسه میشوند: توصیف مبتنی بر شکل، تطابق الگو، و یک شبکهٔ عصبی کانولوشنی ساخته شده با JAX.
فصل ۱۳ – شبیهسازی برهمکنشهای اتمی روی GPU
اصول شبیهسازی دینامیک مولکولی (MD) را معرفی کرده و نحوهٔ پیادهسازی و اجرای آنها را روی GPU نشان میدهد. تئوری پتانسیلهای بیناتمی و انتگرالگیری زمانی پوشش داده میشود که در نهایت به شبیهسازی یک گاز تکاتمی منجر میشود. فصل با پروفایل کردن کد برای شناسایی تنگناها و فرصتهای بهینهسازی به پایان میرسد.
فصل ۱۴ – پیادهسازی مدل زبانی مبتنی بر ترنسفورمر خودتان
آخرین فصل کاربردی است که فرآیند ایجاد یک مدل زبانی از صفر با استفاده از JAX، Flax و Optax را گام به گام طی میکند. معماری ترنسفورمر و سازوکار توجه (attention) توضیح داده و پیادهسازی میشوند، و مدل روی مجموعه دادهٔ IMDb آموزش داده میشود. در این فرآیند، مراحل پیشپردازش متن مانند توکنسازی نیز توضیح داده میشود.
فصل ۱۵ – گسترش و تعمیق دانش برنامهنویسی GPU
کتاب GPU-Accelerated Computing with Python 3 and CUDA را با بررسی و ارائهٔ مراجع برای چندین موضوع پیشرفتهٔ سطح پایین (مانند واسطسازی CUDA-C با Numba-CUDA)، کاربردهای تخصصی (مانند تحلیل گراف)، سایر پارادایمهای محاسبات ناهمگن (مانند OpenCL) و APIهای گرافیکی (مانند Vulkan) به پایان میبرد.
سرفصلهای کتاب GPU-Accelerated Computing with Python 3 and CUDA:
- Preface
- Part 1: Fundamentals of GPU programming with CUDA in Python 3
- Chapter 1: Why GPU Programming with CUDA in Python 3?
- Chapter 2: Setting Up a GPU Programming Environment Locally and in the Cloud
- Chapter 3: Writing and Executing CUDA Kernels with Numba-CUDA
- Chapter 4: Profiling and Debugging CUDA Code
- Part 2: Performance Optimization and Advanced CUDA Topics
- Chapter 5: Optimizing the Performance of CUDA Code
- Chapter 6: Enabling Concurrency Using CUDA Streams
- Chapter 7: Scaling to Multiple GPUs
- Part 3: Using High-Level Python Libraries for GPU Computation
- Chapter 8: Bringing NumPy and SciPy to the GPU with CuPy
- Chapter 9: Bringing pandas and scikit-learn to the GPU with Rapids
- Chapter 10: Solving Optimization Problems on the GPU with JAX
- Part 4: Real-World Example Applications
- Chapter 11: Solving the Heat Equation on the GPU
- Chapter 12: Image Processing and Computer Vision on the GPU
- Chapter 13: Simulating Atomic Interactions on the GPU
- Chapter 14: Implementing Your Own Transformer-Based Language Model
- Part 5: Beyond This Book
- Chapter 15: Expanding and Deepening Your GPU Programming Knowledge
- Chapter 16: Unlock Your Exclusive Benefits
- Other Books You May Enjoy
- Index
جهت دانلود کتاب GPU-Accelerated Computing with Python 3 and CUDA میتوانید پس از پرداخت، دریافت کنید.

دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.