一、 OpenCL (Open Computing Language)
parallel programming of diverse accelerators (including multi-core CPUs, GPUs, DSPs, FPGAs and dedicated hardware such as inferencing engines.)
进行并行计算的low-levelAPI,可直接控制硬件。
在Deeplearning中,对应卷积等科学计算,硬件为GPU和DL Accelerators.
参考:https://www.khronos.org/opencl/
二、 OpenGL
使用GPU进行图形渲染,用于生成2D、3D图像。
OpenGL 渲染管线流程为:顶点数据 -> 顶点着色器 -> 图元装配 -> 几何着色器 -> 光栅化 -> 片段着色器 -> 逐片段处理 -> 帧缓冲
GPU上与渲染处理对应的GPU硬件包括:
参考:https://www.jianshu.com/p/92208a75283d
三、 OpenGL ES
OpenGL for Embedded Systems,用于嵌入式的图形渲染API,是OpenGL的子集,仅保留了高效的函数。
OpenGL® ES is a royalty-free, cross-platform API for rendering advanced 2D and 3D graphics on embedded and mobile systems - including consoles, phones, appliances and vehicles. It consists of a well-defined subset of desktop OpenGL suitable for low-power devices, and provides a flexible and powerful interface between software and graphics acceleration hardware.
参考: https://www.jianshu.com/p/b92b39df57e5
四、 GLFW
OpenGL / OpenGL ES 是跨平台的,它只专注渲染; 其他内容在每个平台上都要有它的具体实现,比如上下文环境和窗口的管理就交由各个设备自己来完成。
GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.
五、 EGL
EGL™ is an interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system.
EGL 是 OpenGL ES 渲染 API 和本地窗口系统(native platform window system)之间的一个中间接口层。
六、Eigen: 矩阵运算
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
https://eigen.tuxfamily.org/dox/group__QuickRefPage.html
LodePNG:
PNG encoder and decoder in C and C++, without dependencies
例如把PNG图像解码为RGBA/RGB,或者将PNG图像解码为RGBA/RGB像素数据;
Convert PNG to BMP或Convert BMP to PNG。
滤波Filter(low-pass, high-pass and band-pass FIR filter):
https://cardinalpeak.com/blog/a-c-class-to-implement-low-pass-high-pass-and-band-pass-filters/
绘制线图Plot
matplotlib-cpp works by wrapping the popular python plotting library matplotlib.
https://github.com/lava/matplotlib-cpp