Heterogeneous Computing (异构计算)
DSP 数字信号处理器
FPGA 现场可编程门阵列
ASIC 专用集成电路
GPU 图形处理单元
Co-processor 英特尔至强融核
计算能力较弱
特殊的架构,限制很多,适应性不强
缺点: memory 是独立,数据指令需要copy
HSA
整合memory
让不同的processe 都可以访问 share memory
Gpu 完全不受cpu的管控
增加memory 的频宽
GPU
数据完全独立
SIMD
一个core 可以call多个线程
显示图形
一般计算
GPGPU 专门用来计算
配套的tools
最小化GPU内存的数据传输和数据使用至关重要
存储量的限制:
host的 memory 128十倍于GPU
GPU一次只能解决12G大小的问题,当host中的问题超出这个限制,就必须进行分解
跨GPU进行计算,多GPU
不仅仅只是计算效能的限制,还有 memory size
核心:
三层memory
很多processor 有自己的memory
一,同时还存在Globle memory ,上文中的35G的访问速度就是指processor内部的core访问Globle memory的速度 ;
二,在讲cuda 中的share 就是指每个SM中的memory,同一个processor中的core对这个memory 共享访问,
在processor内部,相当于cpu访问寄存器,速度非常之快
一,同时还存在Globle memory ,上文中的35G的访问速度就是指processor内部的core访问Globle memory的速度
三,每一个core还有register 不同于processor中的share memory ,register仅限指定的core访问
register 被切成两块: 一: local memory(第三层) 二: share memory(第二层)
32个core为一个单位: 说明在同一个processoe中会有多个单位,如果thread被分配到不同的单位,执行的开始时间也会不一致
HPC 讲求 精准 double precision tasla V/P series
Visualization (single precision) 单精度 GeForce 1000 series
GPU 不能直接与Main memory 沟通
必须通过CPU 进行
所以GPU同CPU之间的通信也至关重要
由于厂商的原因: NVIDIA实现了GPU与GPU之间的NV link 但是与CPU之间没有实现
bandwidth: 带宽 就是与memory 之间通信的速度