<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/offload/liboffload/API/Memory.td, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[Offload] Add olGetMemInfo with platform-less API (#159581)</title>
<updated>2025-09-24T11:17:57+00:00</updated>
<author>
<name>Ross Brunton</name>
<email>bruntonross@protonmail.com</email>
</author>
<published>2025-09-24T11:17:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ea0e5185e2bd9d1de7c422b2c692c6f52a61ecfa'/>
<id>ea0e5185e2bd9d1de7c422b2c692c6f52a61ecfa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Re-allocate overlapping memory (#159567)</title>
<updated>2025-09-23T12:59:52+00:00</updated>
<author>
<name>Ross Brunton</name>
<email>bruntonross@protonmail.com</email>
</author>
<published>2025-09-23T12:59:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fcebe6bdbb2a7e5fec50504ba1d610c0e7028740'/>
<id>fcebe6bdbb2a7e5fec50504ba1d610c0e7028740</id>
<content type='text'>
If olMemAlloc happens to allocate memory that was already allocated
elsewhere (possibly by another device on another platform), it is now
thrown away and a new allocation generated.

A new `AllocBases` vector is now available, which is an ordered list
of allocation start addresses.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If olMemAlloc happens to allocate memory that was already allocated
elsewhere (possibly by another device on another platform), it is now
thrown away and a new allocation generated.

A new `AllocBases` vector is now available, which is an ordered list
of allocation start addresses.</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Fix definition of olMemFill (#154947)</title>
<updated>2025-08-22T13:48:00+00:00</updated>
<author>
<name>Callum Fare</name>
<email>callum@codeplay.com</email>
</author>
<published>2025-08-22T13:48:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=77c5a6506f3b5c6f0521af28d846ffa93eaa54eb'/>
<id>77c5a6506f3b5c6f0521af28d846ffa93eaa54eb</id>
<content type='text'>
Fix regression introduced by #154102 - the way offload-tblgen handles
names has changed</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix regression introduced by #154102 - the way offload-tblgen handles
names has changed</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Implement olMemFill (#154102)</title>
<updated>2025-08-22T13:31:16+00:00</updated>
<author>
<name>Callum Fare</name>
<email>callum@codeplay.com</email>
</author>
<published>2025-08-22T13:31:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0b18d2da70096fcd28e82dbce8f853232454856e'/>
<id>0b18d2da70096fcd28e82dbce8f853232454856e</id>
<content type='text'>
Implement olMemFill to support filling device memory with arbitrary
length patterns. AMDGPU support will be added in a follow-up PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement olMemFill to support filling device memory with arbitrary
length patterns. AMDGPU support will be added in a follow-up PR.</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload][NFC] Use tablegen names rather than `name` parameter for API (#154736)</title>
<updated>2025-08-22T10:13:57+00:00</updated>
<author>
<name>Ross Brunton</name>
<email>ross@codeplay.com</email>
</author>
<published>2025-08-22T10:13:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=17dbb92612db6dcf9746cf494d37476b93e49a49'/>
<id>17dbb92612db6dcf9746cf494d37476b93e49a49</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Replace "EventOut" parameters with `olCreateEvent` (#150217)</title>
<updated>2025-07-24T13:31:06+00:00</updated>
<author>
<name>Ross Brunton</name>
<email>ross@codeplay.com</email>
</author>
<published>2025-07-24T13:31:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=690c3ee5be51bf0b6598b1a202ceb7dec6acebbd'/>
<id>690c3ee5be51bf0b6598b1a202ceb7dec6acebbd</id>
<content type='text'>
Rather than having every "enqueue"-type function have an output pointer
specifically for an output event, just provide an `olCreateEvent`
entrypoint which pushes an event to the queue.

For example, replace:
```cpp
olMemcpy(Queue, ..., EventOut);
```
with
```cpp
olMemcpy(Queue, ...);
olCreateEvent(Queue, EventOut);
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rather than having every "enqueue"-type function have an output pointer
specifically for an output event, just provide an `olCreateEvent`
entrypoint which pushes an event to the queue.

For example, replace:
```cpp
olMemcpy(Queue, ..., EventOut);
```
with
```cpp
olMemcpy(Queue, ...);
olCreateEvent(Queue, EventOut);
```</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Make olMemcpy src parameter const (#143161)</title>
<updated>2025-06-06T15:25:00+00:00</updated>
<author>
<name>Callum Fare</name>
<email>callum@codeplay.com</email>
</author>
<published>2025-06-06T15:25:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=835497a4dcbccb63528767ff941b3b24cd183e76'/>
<id>835497a4dcbccb63528767ff941b3b24cd183e76</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Implement the remaining initial Offload API (#122106)</title>
<updated>2025-04-22T18:27:50+00:00</updated>
<author>
<name>Callum Fare</name>
<email>callum@codeplay.com</email>
</author>
<published>2025-04-22T18:27:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=800d949bb315349a116a980e99d0f36645ffefd3'/>
<id>800d949bb315349a116a980e99d0f36645ffefd3</id>
<content type='text'>
Implement the complete initial version of the Offload API, to the extent
that is usable for simple offloading programs. Tested with a basic SYCL
program.

As far as possible, these are simple wrappers over existing
functionality in the plugins.

* Allocating and freeing memory (host, device, shared).
* Creating a program 
* Creating a queue (wrapper over asynchronous stream resource)
* Enqueuing memcpy operations
* Enqueuing kernel executions
* Waiting on (optional) output events from the enqueue operations
* Waiting on a queue to finish

Objects created with the API have reference counting semantics to handle
their lifetime. They are created with an initial reference count of 1,
which can be incremented and decremented with retain and release
functions. They are freed when their reference count reaches 0. Platform
and device objects are not reference counted, as they are expected to
persist as long as the library is in use, and it's not meaningful for
users to create or destroy them.

Tests have been added to `offload.unittests`, including device code for
testing program and kernel related functionality.

The API should still be considered unstable and it's very likely we will
need to change the existing entry points.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement the complete initial version of the Offload API, to the extent
that is usable for simple offloading programs. Tested with a basic SYCL
program.

As far as possible, these are simple wrappers over existing
functionality in the plugins.

* Allocating and freeing memory (host, device, shared).
* Creating a program 
* Creating a queue (wrapper over asynchronous stream resource)
* Enqueuing memcpy operations
* Enqueuing kernel executions
* Waiting on (optional) output events from the enqueue operations
* Waiting on a queue to finish

Objects created with the API have reference counting semantics to handle
their lifetime. They are created with an initial reference count of 1,
which can be incremented and decremented with retain and release
functions. They are freed when their reference count reaches 0. Platform
and device objects are not reference counted, as they are expected to
persist as long as the library is in use, and it's not meaningful for
users to create or destroy them.

Tests have been added to `offload.unittests`, including device code for
testing program and kernel related functionality.

The API should still be considered unstable and it's very likely we will
need to change the existing entry points.</pre>
</div>
</content>
</entry>
</feed>
