[all-commits] [llvm/llvm-project] 50445d: [libc] Add more utility functions for the GPU

Joseph Huber via All-commits all-commits at lists.llvm.org
Mon Apr 24 13:48:10 PDT 2023


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

  Changed paths:
    M libc/src/__support/GPU/amdgpu/utils.h
    M libc/src/__support/GPU/generic/utils.h
    M libc/src/__support/GPU/nvptx/utils.h
    M libc/src/__support/RPC/CMakeLists.txt
    M libc/startup/gpu/amdgpu/CMakeLists.txt
    M libc/startup/gpu/amdgpu/start.cpp
    M libc/startup/gpu/nvptx/CMakeLists.txt
    M libc/startup/gpu/nvptx/start.cpp
    M libc/test/integration/startup/gpu/rpc_test.cpp

  Log Message:
  -----------
  [libc] Add more utility functions for the GPU

This patch adds extra intrinsics for the GPU. Some of these are unused
for now but will be used later. We use these currently to update the
`RPC` handling. Currently, every thread can update the RPC client, which
isn't correct. This patch adds code neccesary to allow a single thread
to perfrom the write while the others wait.

Feedback is welcome for the naming of these functions. I'm copying the
OpenMP nomenclature where we call an AMD `wavefront` or NVIDIA `warp` a
`lane`.

Reviewed By: tra

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


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

  Changed paths:
    M libc/src/__support/CPP/functional.h
    M libc/src/__support/CPP/type_traits.h
    M libc/src/__support/CPP/utility.h

  Log Message:
  -----------
  [libc] Adjust the `cpp:function` type to support lambdas

The current function type does not support generic lambdas because it
relies on the lambda being implicitly convertible to a function pointer.
This patch adds support for this by copying the existing lightweight
`function_ref` type.

Reviewed By: sivachandra

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


Compare: https://github.com/llvm/llvm-project/compare/5084ba395e48...7090c1027311


More information about the All-commits mailing list