> For the complete documentation index, see [llms.txt](https://chenxiaowei.gitbook.io/heterogeneous-computing-with-opencl2-0/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chenxiaowei.gitbook.io/heterogeneous-computing-with-opencl2-0/1.0-chinese/1.9-chinese.md).

# 1.9 本书结构

* 第1章，介绍并行算法和软件开发的相关原理。其中包括并发、线程和不同粒度的并行化的原理。
* 第2章，介绍一些支持OpenCL的硬件处理器，包括CPU、GPU和APU。还有不同的指令，比如SIMD和VLIW。该章也会涉及多核处理器的原理，以及面向吞吐量的系统，当然也有更加高级的异构架构。
* 第3章，开始介绍OpenCL，包括主机端API和设备端C语言。这章会让读者尝试使用OpenCL进行编程。
* 第4章，深入了解OpenCL编程实例，包括直方图、图像旋转和卷积，并演示一些OpenCL2.0特性，比如管道内存对象。其中的一个例子使用到了OpenCL C++包装器。
* 第5章，讨论并发和OpenCL编程模型。这章中，我们会讨论内核、工作项，以及OpenCL执行和内存模型。也会展示如何使用OpenCL对任务进行排队和同步。这会让读者更加了解如何书写OpenCL程序，并与OpenCL内存模型进行互动。
* 第6章，讨论OpenCL主机端的内存模型，包括资源和内存管理。
* 第7章，继续讨论OpenCL设备端的内存模型。设备端的内存模型将解释执行单元如何从不同的内存地址上对数据进行访问。这章也会更新OpenCL内存一致性模型，包括内存顺序和范围。
* 第8章，讨论OpenCL在三种完全不同的异构平台上的表现，这三个异构平台包括：(1)AMD FX-8350 CPU (2)AMD Radeon R9 290X GPU (3)AMD A10-7850K APU。这章也会提到内存方面的优化策略。
* 第9章，提供一个学习的例子，了解一下图像的聚类和搜索。
* 第10章，介绍如何使用AMD CodeXL对OpenCL程序进行分析和调试。
* 第11章，介绍`C++ AMP`，能够让使用者使用C++来发挥硬件并发的能力。
* 第12章，介绍WebCL，是基于Web的应用使用OpenCL，当硬件支持OpenCL时，能达到加速网页应用的性能。
* 第13章，讨论如何使用其他高级语言来使用OpenCL，比如：Java、Python和Haskell。
