Tegra系列产品是转为移动和嵌入式设备而设计的,如平板电脑和手机,典型的如Tegra K1,Tegra X1,TegraX2等(为嵌入式芯片,功耗低,gpu和cpu芯片在同一块硅片上)
GeForce面向图像用户,典型的如NVIDIA TITAN Xp、GeForce GTX 1080等(通常用于桌面显示,价格亲民,普通大众使用的较多,也可进行科学计算,只是精确度稍低)
Quadro用于专业绘图设计,典型的如Quadro 6000、Quadro FX 5800(计算能力均在2.0及以下)(Quadro支持高速OpenGL渲染)
Tesla用于大规模的并行计算,典型的如Tesla P100、Tesla M60、Tesla K80(Tesla不支持OpenGL。Tesla专为企业部署而设计,拥有更高级别的专业显存,专为处理计算类应用程序而设计。)
Tesla和Geforce的区别(因此Geforce通常比较便宜,Tesla通常很贵)
1:T内部和外部RAM都有ECC保护,而G无保护,ECC的保护,大大降低了内存错误的发生几率;
2:T全部通过0错误测试,保证计算结果的正确性,而G仅针对图形应用的测试,使用T计算得出结果是准确的,可信的。而使用G计算出的结果往往出现错误,经常同一个程序跑几遍,得出的结果却不一样,因此对于严谨的科学计算来说,G的这种表现是致命的;
3:T是Nvidia原厂生产,G是第三方厂商,相比质量更好;
Tegra系列猜测由于成本、体积、需求点等问题同样没有ECC内存保护(查看Tegra X1确实没有):
ECC是否支持查看方式在官方示例代码中有,目录为NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery,其中还含有其他一些性能的获取和显示。
如TX1的运行结果为:
-
./deviceQuery/deviceQuery Starting...
-
CUDA Device Query (Runtime API) version (CUDART static linking)
-
Detected 1 CUDA Capable device(s)
-
Device 0: "NVIDIA Tegra X1"
-
CUDA Driver Version / Runtime Version 8.0 / 8.0
-
CUDA Capability Major/Minor version number: 5.3
-
Total amount of global memory: 3995 MBytes (4188774400 bytes)
-
( 2) Multiprocessors, (128) CUDA Cores/MP: 256 CUDA Cores
-
GPU Max Clock rate: 72 MHz (0.07 GHz)
-
Memory Clock rate: 13 Mhz
-
Memory Bus Width: 64-bit
-
L2 Cache Size: 262144 bytes
-
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
-
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
-
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
-
Total amount of constant memory: 65536 bytes
-
Total amount of shared memory per block: 49152 bytes
-
Total number of registers available per block: 32768
-
Warp size: 32
-
Maximum number of threads per multiprocessor: 2048
-
Maximum number of threads per block: 1024
-
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
-
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
-
Maximum memory pitch: 2147483647 bytes
-
Texture alignment: 512 bytes
-
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
-
Run time limit on kernels: Yes
-
Integrated GPU sharing Host Memory: Yes
-
Support host page-locked memory mapping: Yes
-
Alignment requirement for Surfaces: Yes
-
Device has ECC support: Disabled
-
Device supports Unified Addressing (UVA): Yes
-
Device PCI Domain ID / Bus ID / location ID: 0 / 0 / 0
-
Compute Mode:
-
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
-
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = NVIDIA Tegra X1
-
Result = PASS
获取该内容是否支持的函数和部分代码如下
-
cudaSetDevice(dev);
-
cudaDeviceProp deviceProp;
-
cudaGetDeviceProperties(&deviceProp, dev);
-
printf(" Device has ECC support: %s\n", deviceProp.ECCEnabled ? "Enabled" : "Disabled");