History log of /llvm-project/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp (Results 1 – 11 of 11)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6
# a2fc276e 04-Dec-2024 Joseph Huber <huberjn@outlook.com>

[libc] Remove complicated header guards on HSA include

Summary:
This is much more standard now, we already require new HSA with what we
use, so no point checking for this.


Revision tags: llvmorg-19.1.5
# 89d8e700 27-Nov-2024 Joseph Huber <huberjn@outlook.com>

[libc] Export a pointer to the RPC client directly (#117913)

Summary:
We currently have an unnecessary level of indirection when initializing
the RPC client. This is a holdover from when the RPC cli

[libc] Export a pointer to the RPC client directly (#117913)

Summary:
We currently have an unnecessary level of indirection when initializing
the RPC client. This is a holdover from when the RPC client was not
trivially copyable and simply makes it more complicated. Here we use the
`asm` syntax to give the C++ variable a valid name so that we can just
copy to it directly.

Another advantage to this, is that if users want to piggy-back on the
same RPC interface they need only declare theirs as extern with the same
symbol name, or make it weak to optionally use it if LIBC isn't
avaialb.e

show more ...


# 38049dc8 27-Nov-2024 Joseph Huber <huberjn@outlook.com>

[libc] Handle differing wavefront sizes correctly in the AMDHSA loader (#117788)

Summary:
The AMDGPU backend can handle wavefront sizes of 32 and 64, with the
native hardware preferring one or the o

[libc] Handle differing wavefront sizes correctly in the AMDHSA loader (#117788)

Summary:
The AMDGPU backend can handle wavefront sizes of 32 and 64, with the
native hardware preferring one or the other. The user can override the
hardware with `-mwavefrontsize64` or `-mwavefrontsize32` which
previously wasn't handled. We need to know the wavefront size to know
how much memory to allocate and how to index the RPC buffer. There isn't
a good way to do this with ROCm so we just use the LLVM support for
offloading to check this from the image.

show more ...


# b4d49fb5 25-Nov-2024 Joseph Huber <huberjn@outlook.com>

[libc] Remove RPC server API and use the header directly (#117075)

Summary:
This patch removes much of the `llvmlibc_rpc_server` interface. This
pretty much deletes all of this code and just replace

[libc] Remove RPC server API and use the header directly (#117075)

Summary:
This patch removes much of the `llvmlibc_rpc_server` interface. This
pretty much deletes all of this code and just replaces it with including
`rpc.h` directly. We still maintain the file to let `libc` handle the
opcodes, since those depend on the `printf` impelmentation.

This will need to be cleaned up more, but I don't want to put too much
into a single patch.

show more ...


# 676a1e66 22-Nov-2024 Joseph Huber <huberjn@outlook.com>

[AMDGPU] Remove uses of deprecreated HSA executable functions (#117241)

Summary:
These functions were deprecated in ROCR 1.3 which was released quite
some time ago. The main functionality that was l

[AMDGPU] Remove uses of deprecreated HSA executable functions (#117241)

Summary:
These functions were deprecated in ROCR 1.3 which was released quite
some time ago. The main functionality that was lost was modifying and
inspecting the code object indepedently of the executable, however we do
all of that custom through our ELF API. This should be within the
versions of other functions we use.

show more ...


Revision tags: llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2
# ee57a685 07-Oct-2024 Joseph Huber <huberjn@outlook.com>

[libc] Make a dedicated thread for the RPC server (#111210)

Summary:
Make a separate thread to run the server when we launch. This is
required by CUDA, which you can force with `export
CUDA_LAUNCH_B

[libc] Make a dedicated thread for the RPC server (#111210)

Summary:
Make a separate thread to run the server when we launch. This is
required by CUDA, which you can force with `export
CUDA_LAUNCH_BLOCKING=1`. I figured I might as well be consistent and do
it for the AMD implementation as well even though I believe it's not
necessary.

show more ...


Revision tags: llvmorg-19.1.1
# 6558e561 28-Sep-2024 Joseph Huber <huberjn@outlook.com>

[libc] Update HSA queues to use the maximum size and set the barrier bit (#110034)

Summary:
It's safer to use the maximum size, as this prevents the runtime from
oversubscribing with multiple prod

[libc] Update HSA queues to use the maximum size and set the barrier bit (#110034)

Summary:
It's safer to use the maximum size, as this prevents the runtime from
oversubscribing with multiple producers. Additionally we should set the
barrier bit to ensure that the queue entries block if multiple are
submitted (Which shouldn't happen for this tool).

show more ...


# b712a144 27-Sep-2024 Joseph Huber <huberjn@outlook.com>

[libc] Fix memory leak and accidentally ignoring dimensions in loader

Summary:
The loader had a bug where we weren't setting the dimensions correctly,
also I forgot to delete the paths for this RPC

[libc] Fix memory leak and accidentally ignoring dimensions in loader

Summary:
The loader had a bug where we weren't setting the dimensions correctly,
also I forgot to delete the paths for this RPC call.

show more ...


Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3
# 8c6a6f1a 06-Aug-2024 Joseph Huber <huberjn@outlook.com>

[libc] Make RPC malloc implementation return 'nullptr' on alloc failure

Summary:
`malloc` is supposed to return `nullptr` if it fails, not exit with an
error code.


Revision tags: llvmorg-19.1.0-rc2
# 5e326983 01-Aug-2024 Joseph Huber <huberjn@outlook.com>

[libc] Use LLVM CommandLine for loader tool (#101501)

Summary:
This patch removes the ad-hoc parsing that I used previously and
replaces it with the LLVM CommnadLine interface. This doesn't change a

[libc] Use LLVM CommandLine for loader tool (#101501)

Summary:
This patch removes the ad-hoc parsing that I used previously and
replaces it with the LLVM CommnadLine interface. This doesn't change any
functionality, but makes it easier to maintain.

show more ...


# feeb8335 01-Aug-2024 Joseph Huber <huberjn@outlook.com>

[libc] Change the GPU loaders to LLVM executables (#101442)

Summary:
I am going to rework these tools to just me LLVM tools. This patch is
pretty much NFC to set up the CMake for that.