-
Notifications
You must be signed in to change notification settings - Fork 98
GPU Information
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.
Wiki pages are maintained by M. De Graef; they are part of the EMsoft package and fall under the same copyright (BSD2).
Information for Users
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
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
Complete Examples
- Crystal Data Entry Example
- EBSD Example
- ECP Example
- TKD Example
- ECCI Example
- CBED Example
- Dictionary Indexing Example
- DItutorial
Information for Developers