Skip to content

GPU Information

Marc DeGraef edited this page Nov 3, 2018 · 1 revision

Obtaining GPU Information on your System

An auxiliary program, EMOpenCLinfo, can be used to obtain information about the available GPU(s) on your system. As an example, on a 2015 MacBook Pro, the relevant portion of the output of this program is:

Number of Platforms: 1

Platform: 1

 Profile: FULL_PROFILE
 Version: OpenCL 1.2 (Apr  4 2017 19:07:42)
 Name: Apple
 Vendor: Apple
 Extensions: cl_APPLE_SetMemObjectDestructor cl_APPLE_ContextLoggingFunctions 
 cl_APPLE_clut cl_APPLE_query_kernel_names cl_APPLE_gl_sharing cl_khr_gl_event

Num CPU Devices:  1
 Device (# 1, CU/MWGS/MWIS/GMS:    8/1024/1024,   1,   1/ 16) 
     -  Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz

Num GPU Devices:  2
 Device (# 1, CU/MWGS/MWIS/GMS/MAS:   40/ 512/ 512, 512, 512/  1, 384) 
     -  Iris Pro
 Device (# 2, CU/MWGS/MWIS/GMS/MAS:   10/ 256/ 256, 256, 256/  2, 512) 
     -  AMD Radeon R9 M370X Compute Engine
     
[CU = Compute Units; MWGS = Maximum Work Group Size; MWIS = Maximum Work Item 
Sizes (3D); GMS = Global Memory Size (Gb); MAS = Maximum Allocatable Memory 
Size (Mb)]

This program output shows that there is a single OpenCL platform, consisting of 8 CPU compute cores and 2 GPU devices; the first of these runs the laptop screen and the second is available as a compute platform. If no GPU devices are shown for any of the available platforms, this indicates that either there is no available GPU or the OpenCL platform is not properly configured; on some operating systems, OpenCL drivers must be downloaded from the nVidia web site and installed manually.

On one of the Linux systems in the Materials Characterization Facility at Carnegie Mellon University, the output of the program reads as follows:

Number of Platforms: 2
--------
Platform: 1

 Profile: FULL_PROFILE
 Version: OpenCL 1.2 LINUX
 Name: Intel(R) OpenCL
 Vendor: Intel(R) Corporation
 Extensions: cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 


Num CPU Devices:  1
 Device (# 1, CU/MWGS/MWIS/GMS:   48/8192/8192,8192,8192/125) -  Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz

  Non-fatal error: Error: CL_DEVICE_NOT_FOUND
 No GPU devices found on this platform 
  
 [CU = Compute Units; MWGS = Maximum Work Group Size; MWIS = Maximum Work Item Sizes (3D); GMS = Global Memory Size (Gb); MAS = Maximum Allocatable Memory Size (Mb)]
--------
Platform: 2

 Profile: FULL_PROFILE
 Version: OpenCL 1.2 CUDA 8.0.0
 Name: NVIDIA CUDA
 Vendor: NVIDIA Corporation
 Extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts

  Non-fatal error: Error: CL_DEVICE_NOT_FOUND
 No CPU devices found on this platform


Num GPU Devices:  4
 Device (# 1, CU/MWGS/MWIS/GMS/MAS:   20/1024/1024,1024,  64/  7,2028) -  GeForce GTX 1080
 Device (# 2, CU/MWGS/MWIS/GMS/MAS:   20/1024/1024,1024,  64/  7,2028) -  GeForce GTX 1080
 Device (# 3, CU/MWGS/MWIS/GMS/MAS:   20/1024/1024,1024,  64/  7,2028) -  GeForce GTX 1080
 Device (# 4, CU/MWGS/MWIS/GMS/MAS:   20/1024/1024,1024,  64/  7,2028) -  GeForce GTX 1080
  
 [CU = Compute Units; MWGS = Maximum Work Group Size; MWIS = Maximum Work Item Sizes (3D); GMS = Global Memory Size (Gb); MAS = Maximum Allocatable Memory Size (Mb)]

This shows that there are 2 platforms, one containing the CPU cores, the other four GPUs. THe platform and device numbers will need to be used to properly set up programs that need to access the GPUs, including Monte Carlo simulations, dictionary indexing runs, and STEM-DCI diffraction contrast image simulations.

For a properly installed OpenCL environment on a Linux OS, the command nvidia-smi shows the current status of the available GPUs. Typical output on a Linux CentOS 7 system equipped with four GTX 1080 GPUs looks as follows:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.39                 Driver Version: 375.39                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    On   | 0000:02:00.0     Off |                  N/A |
|  0%   32C    P8    11W / 180W |    113MiB /  8114MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 1080    On   | 0000:03:00.0     Off |                  N/A |
| 24%   57C    P2    77W / 180W |    173MiB /  8114MiB |     23%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 1080    On   | 0000:82:00.0     Off |                  N/A |
|  0%   38C    P8    12W / 180W |    113MiB /  8114MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 1080    On   | 0000:83:00.0     Off |                  N/A |
|  0%   32C    P8    12W / 180W |    113MiB /  8114MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

This table shows the thermal status of each card; in this case, the second GPU (with ID 1) is used at 23% capacity, and is using 77 W of power and 173 Mb of the available 8 Gb of memory.

Information for Users

Home

SEM Modalities     - Monte Carlo Simulations
    - EBSD Master Pattern Simulations
    - EBSD Overlap Master Patterns
    - EBSD Pattern Simulations
    - EBSD Dictionary Indexing
    - EBSD Spherical Indexing
    - EBSD Reflector Ranking
    - EBSD HREBSD
    - ECP Master Pattern Simulations
    - ECP Pattern Simulations
    - TKD Master Pattern Simulations
    - TKD Pattern Simulations
    - ECCI Defect Image Simulations
TEM Modalities     - HH4
    - PED
    - CBED Pattern Simulations
    - STEM-DCI Image Simulations
    - EMIntegrateSTEM utility
XRD Modalities     - Laue Master Pattern Simulation
    - EMLaue
    - EMLaueSlit
General Parameter Definitions * Foil Defect Configuration Definitions
EMsoftWorkbench
Utility Programs     - EMConvertOrientations
    - EMDisorientations
    - EMHOLZ
    - EMKikuchiMap
    - EMOpenCLinfo
    - EMZAgeom
    - EMcuboMK
    - EMdpextract
    - EMdpmerge
    - EMdrawcell
    - EMeqvPS
    - EMeqvrot
    - EMfamily
    - EMGBO
    - EMGBOdm
    - EMgetEulers
    - EMgetOSM
    - EMlatgeom
    - EMlistSG
    - EMlistTC
    - EMmkxtal
    - EMorbit
    - EMorient
    - EMqg
    - EMsampleRFZ
    - EMshowxtal
    - EMsoftSlackTest
    - EMsoftinit
    - EMstar
    - EMstereo
    - EMxtalExtract
    - EMxtalinfo
    - EMzap
IDL Scripts     - Virtual Machine Apps
    - SEMDisplay
    - Efit
    - CBEDDisplay
python wrappers     - python examples
Docker     - Docker Image

Complete Examples

  1. Crystal Data Entry Example
  2. EBSD Example
  3. ECP Example
  4. TKD Example
  5. ECCI Example
  6. CBED Example
  7. Dictionary Indexing Example
  8. DItutorial

Information for Developers

Clone this wiki locally