[all-commits] [llvm/llvm-project] 814dfb: [libc] Add a support library for GPU utilities

Joseph Huber via All-commits all-commits at lists.llvm.org
Wed Apr 19 06:02:16 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 814dfb016aad7ceae2e3fda19659e0bb20f10464
      https://github.com/llvm/llvm-project/commit/814dfb016aad7ceae2e3fda19659e0bb20f10464
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    M libc/src/__support/CMakeLists.txt
    A libc/src/__support/GPU/CMakeLists.txt
    A libc/src/__support/GPU/amdgpu/CMakeLists.txt
    A libc/src/__support/GPU/amdgpu/utils.h
    A libc/src/__support/GPU/generic/CMakeLists.txt
    A libc/src/__support/GPU/generic/utils.h
    A libc/src/__support/GPU/nvptx/CMakeLists.txt
    A libc/src/__support/GPU/nvptx/utils.h
    A libc/src/__support/GPU/utils.h
    M libc/src/__support/RPC/CMakeLists.txt
    M libc/src/__support/RPC/rpc.h

  Log Message:
  -----------
  [libc] Add a support library for GPU utilities

The GPU has many features that can only be accessed through builtin or
intrinsic functions. Furthermore, these functions are unique for each
GPU target. This patch outlines an interface to create a common `libc`
interface to access these. Currently I only implement a function for the
CUDA equivalent of `blockIdx.x`. More will be added in the future.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D148635


  Commit: bc11bb3e26e98b167737cee94ca23a6fb5a40881
      https://github.com/llvm/llvm-project/commit/bc11bb3e26e98b167737cee94ca23a6fb5a40881
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    M libc/utils/gpu/loader/Loader.h
    M libc/utils/gpu/loader/Main.cpp
    M libc/utils/gpu/loader/amdgpu/Loader.cpp
    M libc/utils/gpu/loader/nvptx/Loader.cpp

  Log Message:
  -----------
  [libc] Add the '--threads' and '--blocks' option to the GPU loaders

We will want to test the GPU `libc` with multiple threads in the future.
This patch adds the `--threads` and `--blocks` option to set the `x`
dimension of the kernel. Using CUDA terminology instead of OpenCL for
familiarity.

Depends on D148288 D148342

Reviewed By: jdoerfert, sivachandra, tra

Differential Revision: https://reviews.llvm.org/D148485


Compare: https://github.com/llvm/llvm-project/compare/8cf0290c4a47...bc11bb3e26e9


More information about the All-commits mailing list