Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] PTX backend support for atomics"
2011 Nov 19
1
[LLVMdev] PTX backend support for atomics
Looking further during down time at the dev meeting today, it actually
seems that PTX atom.* and red.* intrinsics map extremely naturally
onto the LLVM atomicrmw and cmpxchg instructions. The biggest issue is
that a subset of things expressible with these LLVM instructions do
not trivially map to PTX, and the range of things naturally supported
depends on the features of a given target. With
2011 Nov 01
0
[LLVMdev] PTX backend support for atomics
On Mon, Oct 31, 2011 at 3:15 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu>wrote:
> I notice that there is not currently any intrinsic support for atomics in
> the PTX backend. Is this on the roadmap? Should it be as easy to add as it
> seems (plumbing through just like the thread ID instructions, &c.)? The
> obvious difference is that these ops have side effects.
>
It
2012 Sep 14
4
[LLVMdev] Atomic ops cannot be built from C/OCaml bindings
Forgive me if I'm missing something obvious, but it seems that a
number of core instructions—I'm specifically running in to
`atomicrmw`, `fence`, and `cmpxchg` at the moment—cannot be
constructed from the C bindings, and are therefore also inaccessible
to the OCaml bindings. There are opcodes for each of these in the
llvm-c/Core.h, but there seems to be no way to construct them.
Is there
2012 Oct 24
0
[LLVMdev] Atomic ops cannot be built from C/OCaml bindings
I finally got around to adding these.
The patch is posted in a pull request on my copy of llvm.git:
https://github.com/jrk/llvm/pull/3
and a simple test with OCaml is here:
https://gist.github.com/3948460
Feedback welcome.
On Sep 14, 2012, at 7:53 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu> wrote:
> Forgive me if I'm missing something obvious, but it seems that a
>
2012 Jan 10
1
[LLVMdev] truncstore fails in PTX backend
From what I can tell, the truncstore paths all fail instruction selection in the current PTX backend. This is easy to work around for int types >= 16 bits by setting the truncstore action to expand in PTXISelLowering.cpp, but this cannot handle i8 values, since the PTX backend has no register representation for i8s. As a result of all this, it is not possible to store to i8 pointers at all.
2012 Jan 16
1
[LLVMdev] PTX backend fails instruction selection for load of sext
Loads (on ptx64) with an sext of a computed index operand fail instruction selection:
LLVM ERROR: Cannot select: 0x7ff01401c210: i64,ch = load 0x10580e820, 0x7ff01401b510, 0x7ff01401b910<LD4[%memref1], sext from i32> [ID=8]
0x7ff01401b510: i64 = PTXISD::LOAD_PARAM 0x10580e820, 0x7ff01401b410 [ORD=2] [ID=6]
0x7ff01401b910: i64 = undef [ORD=4] [ID=3]
This is for code of the form:
%ptr
2012 Oct 05
2
[LLVMdev] Atomic ops cannot be built from C/OCaml bindings
How soon would I need to submit a patch for this for it to have a comfortable shot at making it into the 3.2 release?
On Sep 14, 2012, at 8:05 PM, Eric Christopher <echristo at apple.com> wrote:
>
> On Sep 14, 2012, at 4:53 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu> wrote:
>
>> Is there a reason these should be omitted?
>
> Not in particular. Things are
2015 Jan 12
3
[LLVMdev] Emitting IR in older formats (for NVVM)
This question is specifically motivated by the practical constraints of
NVVM, but I don't know anywhere better to ask (hopefully, e.g.,
@jholewinski is still following), and I believe it concerns general LLVM
issues:
NVIDIA's libNVVM is built on LLVM 3.2. This means its bitcode and LL text
parsers are from that generation. It's interface calls for adding modules
as either bitcode
2018 Jul 24
2
Possibility of implementing a low-level naive lock purely with LLVM atomics?
Hi:
In our frontend we are attempting to build a lock mechanism without using system apis like pthreads and whatnot for internal reasons.
In order to achieve this we are now creating a int32 type GV, and then use atomic load/store and comparisons. The generated IR looks like the following:
```
@Flag = private global i32 0, align 4
%0 = load atomic i32, i32* @Flag acquire, align 4
%1 = icmp eq
2015 Dec 11
2
RFC: Extending atomic loads and stores to floating point and vector types
On 12/11/2015 01:29 PM, James Y Knight wrote:
>
> On Fri, Dec 11, 2015 at 3:05 PM, Philip Reames via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
>> One open question I don't know the answer to: Are there any
>> special semantics required from floating point stores which
>> aren't met
2009 Jun 04
2
[LLVMdev] Windows x64 JIT usability
What is the current state of the JIT on Windows x64?
I have noticed intermittent conversation about past incompatibility
due to the calling convention idiosyncrasies, as well as some
suggestion from last fall that it was targeted for a fix in the 2.5
timeframe, but see no definitive conclusion. Is this working in 2.5,
in trunk, or likely to be in trunk soon?
2011 May 13
2
[LLVMdev] Does the OCaml binding include intrinsic support?
I can't seem to find reference to intrinsics, beyond the is_intrinsic function.
I am building a backend which needs to perform some target-specific
code-generation (for SSE, AVX, and NEON), and intrinsics are the
standard path in the C++ API.
2012 Sep 15
0
[LLVMdev] Atomic ops cannot be built from C/OCaml bindings
On Sep 14, 2012, at 4:53 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu> wrote:
> Is there a reason these should be omitted?
Not in particular. Things are added to the C API as needed and usually on demand.
-eric
2020 Oct 15
3
Out-of-line atomics implementation ways
Greetings everyone,
I am working on Aarch64 LSE out-of-line atomics support in LLVM, porting this GCC series: https://gcc.gnu.org/legacy-ml/gcc-patches/2019-09/msg01034.html
After local design experiments I've got some questions about upstream-suitable ways of implementation. More specifically:
1. Pass to expand atomics to library helper functions calls.
These helpers test for the presence
2011 Mar 10
1
[LLVMdev] [PTX] Should we keep backward-compatibility of PTX?
Hi Justin,
There are some backward incompatible features of PTX; for example,
special registers are redefined as v4i32 (they were v4i16) in PTX 2.0.
And CUDA 4.0 was rolled out last week. I heard that some instructions
are deprecated.
I am not sure how stable (or unstable) PTX specification is. Do you
have a rough assessment of its stability?
If PTX specification is still fast evolving, I would
2015 Dec 11
2
RFC: Extending atomic loads and stores to floating point and vector types
On 12/11/2015 12:05 AM, JF Bastien wrote:
> On Fri, Dec 11, 2015 at 3:22 AM, Philip Reames via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Currently, we limit atomic loads and stores to either pointer or
> integer types. I would like to propose that we extend this to
> allow both floating point and vector types
2016 Jan 27
7
Adding sanity to the Atomics implementation
Right now, the atomics implementation in clang is a bit of a mess. It has three basically completely distinct code-paths:
There's the legacy __sync_* builtins, which clang lowers directly to atomic IR instructions. Then, the llvm atomic IR instructions themselves can sometimes emit libcalls to __sync_* library functions (which are basically undocumented, and users are often responsible for
2013 Dec 06
2
[LLVMdev] PTX generation examples?
OK, fine -- an example of MCJIT that sets up for PTX JIT would also be helpful.
On Dec 6, 2013, at 12:32 PM, Eli Bendersky <eliben at google.com> wrote:
>
> You'll have to switch to MCJIT for this purpose. Legacy JIT doesn't emit PTX.
>
> Eli
--
Larry Gritz
lg at larrygritz.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2013 Jan 11
4
[LLVMdev] Update PTX section in CodeGenerator.html
Hi Justin,
I believe the PTX section in the link below need some love,
updating "lib/Target/PTX" to "lib/Target/NVPTX" for example.
Would you like to take a look?
http://llvm.org/docs/CodeGenerator.html#the-ptx-backend
Regards,
chenwj
--
Wei-Ren Chen (陳韋任)
Computer Systems Lab, Institute of Information Science,
Academia Sinica, Taiwan (R.O.C.)
Tel:886-2-2788-3799 #1667
2013 Dec 09
0
[LLVMdev] PTX generation examples?
There is no MCJIT support for PTX at the moment (mainly because PTX does
not have a binary format, and is not machine code per se).
To generate PTX at run-time, you just set up a standard codegen pass
manager like you would like an off-line compiler. The output will be a
string buffer that contains the PTX, which you can load into the CUDA
runtime.
As for determining if PTX support is compiled