[all-commits] [llvm/llvm-project] 719d77: [libc] Begin implementing a library for the RPC se...
Joseph Huber via All-commits
all-commits at lists.llvm.org
Thu Jun 15 09:02:40 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 719d77ed28b69101aaa03cf82d64ede3b29cafcd
https://github.com/llvm/llvm-project/commit/719d77ed28b69101aaa03cf82d64ede3b29cafcd
Author: Joseph Huber <jhuber6 at vols.utk.edu>
Date: 2023-06-15 (Thu, 15 Jun 2023)
Changed paths:
M libc/src/__support/RPC/rpc.h
M libc/utils/gpu/CMakeLists.txt
M libc/utils/gpu/loader/Loader.h
R libc/utils/gpu/loader/Server.h
M libc/utils/gpu/loader/amdgpu/CMakeLists.txt
M libc/utils/gpu/loader/amdgpu/Loader.cpp
M libc/utils/gpu/loader/nvptx/CMakeLists.txt
M libc/utils/gpu/loader/nvptx/Loader.cpp
A libc/utils/gpu/server/CMakeLists.txt
A libc/utils/gpu/server/Server.cpp
A libc/utils/gpu/server/Server.h
Log Message:
-----------
[libc] Begin implementing a library for the RPC server
This patch begins providing a generic static library that wraps around
the raw `rpc.h` interface. As discussed in the corresponding RFC,
https://discourse.llvm.org/t/rfc-libc-exporting-the-rpc-interface-for-the-gpu-libc/71030,
we want to begin exporting RPC services to external users. In order to
do this we decided to not expose the `rpc.h` header by wrapping around
its functionality. This is done with a C-interface as we make heavy use
of callbacks and allows us to provide a predictable interface.
Reviewed By: JonChesterfield, sivachandra
Differential Revision: https://reviews.llvm.org/D147054
Commit: dcdfc963d7934a1313094b6fe9ce7aa04debe495
https://github.com/llvm/llvm-project/commit/dcdfc963d7934a1313094b6fe9ce7aa04debe495
Author: Joseph Huber <jhuber6 at vols.utk.edu>
Date: 2023-06-15 (Thu, 15 Jun 2023)
Changed paths:
M libc/config/gpu/api.td
M libc/config/gpu/entrypoints.txt
M libc/config/gpu/headers.txt
M libc/include/CMakeLists.txt
A libc/include/gpu/rpc.h.def
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/rpc_opcodes_t.h
A libc/spec/gpu_ext.td
M libc/src/CMakeLists.txt
M libc/src/__support/File/gpu/file.cpp
M libc/src/__support/OSUtil/gpu/io.cpp
M libc/src/__support/OSUtil/gpu/quick_exit.cpp
M libc/src/__support/RPC/CMakeLists.txt
M libc/src/__support/RPC/rpc.h
M libc/src/__support/RPC/rpc_client.h
A libc/src/gpu/CMakeLists.txt
A libc/src/gpu/rpc_reset.cpp
A libc/src/gpu/rpc_reset.h
M libc/src/stdlib/gpu/free.cpp
M libc/src/stdlib/gpu/malloc.cpp
M libc/test/integration/startup/gpu/rpc_interface_test.cpp
M libc/test/integration/startup/gpu/rpc_stream_test.cpp
M libc/test/integration/startup/gpu/rpc_test.cpp
M libc/utils/gpu/loader/CMakeLists.txt
M libc/utils/gpu/server/CMakeLists.txt
M libc/utils/gpu/server/Server.cpp
M libc/utils/gpu/server/Server.h
Log Message:
-----------
[libc] Export GPU extensions to `libc` for external use
The GPU port of the LLVM C library needs to export a few extensions to
the interface such that users can interface with it. This patch adds the
necessary logic to define a GPU extension. Currently, this only exports
a `rpc_reset_client` function. This allows us to use the server in
D147054 to set up the RPC interface outside of `libc`.
Depends on https://reviews.llvm.org/D147054
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D152283
Compare: https://github.com/llvm/llvm-project/compare/0608764d6f3b...dcdfc963d793
More information about the All-commits
mailing list