bvaisvil / zenith

Zenith - sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage
MIT License
2.63k stars 67 forks source link

Add Support for Intel GPUs on Linux #104

Open Jiab77 opened 3 years ago

Jiab77 commented 3 years ago

Hi, I recently discovered your project and found it really cool and well done.

When I've tried the GPU support for Nvidia, it worked perfectly! But when I wanted to see if you had implemented the same for Intel GPU's, I saw nothing in the Graphics Devices part.

It would be nice to implement the support for Intel GPUs along the others that are planned in #27.

For now I'm using intel_gpu_top from the debian/ubuntu package intel-gpu-tools and here is how it looks so far:

image

I don't know if that's possible in rust, maybe there is no library for that šŸ¤”

BTW, in case you don't find anything useful within the intel-gpu-tools package, you can give a try to the package/command clinfo:

$ clinfo
Number of platforms                               1
  Platform Name                                   Intel Gen OCL Driver
  Platform Vendor                                 Intel
  Platform Version                                OpenCL 2.0 beignet 1.3
  Platform Profile                                FULL_PROFILE
  Platform 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_byte_addressable_store cl_khr_3d_image_writes cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_spir cl_khr_icd cl_intel_accelerator cl_intel_subgroups cl_intel_subgroups_short cl_khr_gl_sharing
  Platform Extensions function suffix             Intel

  Platform Name                                   Intel Gen OCL Driver
Number of devices                                 1
  Device Name                                     Intel(R) HD Graphics Kabylake ULT GT3
  Device Vendor                                   Intel
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 2.0 beignet 1.3
  Driver Version                                  1.3
  Device OpenCL C Version                         OpenCL C 2.0 beignet 1.3
  Device Type                                     GPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               48
  Max clock frequency                             1000MHz
  Device Partition                                (core)
    Max number of sub-devices                     1
    Supported partition types                     None, None, None

I don't know how to code in rust yet but let me know if I can help for testing things. šŸ˜‰

bvaisvil commented 3 years ago

Thank you for kind comments!

I do want to add support for intel GPUs. I think I can get what I need from this. I couldn't immediately find rust bindings, but if those exist that should make it straight forward.