So today we're going to cover the following broad topics.
We'll start by returning to the topic of optimizing GPU programs.
Now in unit 5, we gave some pretty specific, detailed advice.
And unit 6 explored some examples of how to think parallel.
Here we're going to back off and talk more generally
about strategies that parallel programmers use to optimize their programs.
Now the best kind of programming, as we mentioned briefly in unit 5,
is the kind of programming that you don't do because somebody else has already programmed
it for you and packaged into a library you can use.
So we'll talk about some important and useful CUDA libraries that are out there.
Some of these libraries are less about packaging up code to solve a particular problem and more about
providing what I call programming power tools to help code up your own solutions.
So examples familiar to C++ programmers would be the standard template library,
or STL, or the boost library.
We'll discuss a few such power tools for CUDA C++ programmers.
Now to write this class we focused on the CUDA C++ language,
but there are many other platforms for parallel programming on GPUs.
We'll talk about CUDA platforms that support other languages from Fortran to Python to Matlab.
And we'll also discuss cross platform accelerator solutions like Open CL,
Open ACC and Open GL compute.
Now GPU computing is a young field and part of what
makes it exciting is that the hardware and software are improving each year,
not just getting incrementally faster but also adding fundamentally new capabilities.
So we're going to finish the unit and the course with a fantastic
guest lecture, inviting Dr. Stephen Jones from NVIDIA to come and teach us about
the latest advance in CUDA called Dynamic Parllelism.
今天我们要涉及以下
我们首先回到优化GPU程序的话题。
在第五单元,我们给出了一些相当具体的建议。
第六单元探讨了如何并行思考的一些示例。
这里我们将后退,更一般地
说说并行程序员用来优化程序的策略。
正如我们在第五单元简要提到的,最好的一类编程
是你不用做的那类编程,因为别人早已
为你编好,并打包成一个库供你使用。
所以我们将说几个重要且有用的CUDA库。
其中有些库很少打包解决特定问题的代码,而更多是
提供我称为编程动力工具的代码,来帮助你编写自己的解决方案。
C++程序员熟悉的例子有标准模板库、
STL和Boost库。
我们会为CUDA C++程序员讨论一些这样的动力工具。
现在总结这堂课,我们集中在CUDA C++语言,
但GPU并行编程还有很多其他平台。
我们会谈谈CUDA平台支持其他语言,从Fortran到Python,再到Matlab。
我们还会讨论跨平台加速方案,如Open CL、
Open ACC和Open GL计算。
现今GPU计算是个新兴领域,它令人兴奋的部分原因是
硬件和软件每年都在提升,
不但逐渐变快,而且添加基本的新功能。
我们将以一个极好的客座讲座来结束这个单元和整个课程,
邀请英伟达的Stephen Jones博士来教我们
CUDA的最新进展—叫做动态并行。