Page MenuHomePhabricator

RaviNarayanaswamy (Ravi Narayanaswamy)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 11 2015, 7:57 AM (384 w, 4 d)

Recent Activity

Mon, Mar 20

RaviNarayanaswamy added a comment to D132306: Automatic asynchronous execution of OpenMP Target Regions.

Adding another limitation to this approach. In the following code:

void aaaa(int b) {
    // TARGET A
    #pragma omp target
    {}

    // TARGET B
    #pragma omp target nowait
    {}

    // TARGET C
    #pragma omp target
    {}
}

The task A->B dependency should be respected, since A is originally synchronous, it should have been executed before B. However, B will be spawned in a different thread and A can potentially execute after B.

Mon, Mar 20, 3:20 PM · Restricted Project, Unknown Object (Project)

Sep 30 2022

RaviNarayanaswamy added a comment to D134845: [OpenMP][libomptarget] Emit runtime message when variable is incorrectly mapped to device.

This message could be printed when LIBOMPTARGET_INFO="something". I don't think it should be printed by default as it could be false positive.

Sep 30 2022, 11:19 AM · Restricted Project, Unknown Object (Project)

Sep 29 2022

RaviNarayanaswamy added a comment to D134845: [OpenMP][libomptarget] Emit runtime message when variable is incorrectly mapped to device.

I am not sure if we should generate this message. The spec says "Each list item must have a corresponding list item in the device data environment or be accessible on the target device."
The pointer may be in the unified_shared_memory.

Sep 29 2022, 2:49 PM · Restricted Project, Unknown Object (Project)

Sep 26 2022

RaviNarayanaswamy added a comment to D134565: [OpenMP][Offload] Initial patch for Level Zero plugin.

We currently have a new plugin interface https://reviews.llvm.org/D134396, and the use of libelf is expected to go away.

The libelf dependency has already been removed in LLVM, we only use LLVM's libraries now.

Sep 26 2022, 1:29 PM · Restricted Project, Unknown Object (Project)

Sep 21 2022

RaviNarayanaswamy added inline comments to D133277: [RFC][OpenMP][Doc] No backward compatible for libomptarget and plugins.
Sep 21 2022, 4:46 PM · Unknown Object (Project), Restricted Project

Apr 22 2022

RaviNarayanaswamy added a comment to D123891: [libomptarget] Make omp_target_is_present checks storage instead of zero length array..

LGTM

Apr 22 2022, 12:55 PM · Restricted Project, Unknown Object (Project)

Apr 7 2022

RaviNarayanaswamy accepted D123093: [libomptarget] Implement pointer lookup as 5.1 spec..

LGTM

Apr 7 2022, 4:42 PM · Unknown Object (Project), Restricted Project

Mar 29 2022

Herald added a project to D81989: [OpenMP] Introduce low level dependency process to target offloading: Restricted Project.
Mar 29 2022, 5:24 PM · Restricted Project, Unknown Object (Project)

Feb 11 2022

RaviNarayanaswamy added a comment to D119586: [OpenMP][libomp] Fix crash when LIBOMP_NUM_HIDDEN_HELPER_THREADS=1..

LGTM

Feb 11 2022, 2:17 PM · Unknown Object (Project)
RaviNarayanaswamy added a comment to D119586: [OpenMP][libomp] Fix crash when LIBOMP_NUM_HIDDEN_HELPER_THREADS=1..

Thanks Andrey for the fix

Feb 11 2022, 1:32 PM · Unknown Object (Project)

Jan 24 2022

RaviNarayanaswamy added inline comments to D117997: [libomptarget] Correctly return the implicit device base address when the base itself has not been mapped..
Jan 24 2022, 3:24 PM · Unknown Object (Project)
RaviNarayanaswamy added inline comments to D117997: [libomptarget] Correctly return the implicit device base address when the base itself has not been mapped..
Jan 24 2022, 2:49 PM · Unknown Object (Project)
RaviNarayanaswamy added inline comments to D117997: [libomptarget] Correctly return the implicit device base address when the base itself has not been mapped..
Jan 24 2022, 2:44 PM · Unknown Object (Project)

Nov 10 2021

RaviNarayanaswamy accepted D106674: Runtime for Interop directive.

LGTM

Nov 10 2021, 1:22 PM · Restricted Project, Restricted Project, Unknown Object (Project)

Oct 5 2021

RaviNarayanaswamy added inline comments to D110193: [RFC] Initial documentation for declare target indirect support..
Oct 5 2021, 11:49 AM · Unknown Object (Project)

Sep 22 2021

RaviNarayanaswamy added inline comments to D110193: [RFC] Initial documentation for declare target indirect support..
Sep 22 2021, 8:53 AM · Unknown Object (Project)

Sep 10 2021

RaviNarayanaswamy added inline comments to D106674: Runtime for Interop directive.
Sep 10 2021, 3:24 PM · Restricted Project, Restricted Project, Unknown Object (Project)
RaviNarayanaswamy added inline comments to D106674: Runtime for Interop directive.
Sep 10 2021, 1:29 PM · Restricted Project, Restricted Project, Unknown Object (Project)

Sep 9 2021

RaviNarayanaswamy added inline comments to D106674: Runtime for Interop directive.
Sep 9 2021, 2:51 PM · Restricted Project, Restricted Project, Unknown Object (Project)

Aug 6 2021

RaviNarayanaswamy added inline comments to D107656: [OpenMP] Use events and taskyield in target nowait task to unblock host threads.
Aug 6 2021, 2:49 PM
RaviNarayanaswamy added inline comments to D107656: [OpenMP] Use events and taskyield in target nowait task to unblock host threads.
Aug 6 2021, 1:50 PM

Aug 3 2021

RaviNarayanaswamy added inline comments to D106674: Runtime for Interop directive.
Aug 3 2021, 2:42 PM · Restricted Project, Restricted Project, Unknown Object (Project)

Jul 23 2021

RaviNarayanaswamy added a comment to D106674: Runtime for Interop directive.

You should not be using kmpc in libomptarget

Jul 23 2021, 9:31 AM · Restricted Project, Restricted Project, Unknown Object (Project)

Jul 9 2021

RaviNarayanaswamy added a comment to D105121: [OpenMP] Avoid checking parent reference count in targetDataBegin.

If the current behavior is only the pointer field of the struct and not other members of the struct are updated after the array is allocated and copied.

Jul 9 2021, 3:49 PM · Unknown Object (Project)
RaviNarayanaswamy added a comment to D105121: [OpenMP] Avoid checking parent reference count in targetDataBegin.

Are you concerned about a misbehavior here?

I am just answering the question George asked about the expected behavior.

Jul 9 2021, 3:38 PM · Unknown Object (Project)
RaviNarayanaswamy updated subscribers of D105121: [OpenMP] Avoid checking parent reference count in targetDataBegin.

#pragma omp target map(s1.p[0:10])

Jul 9 2021, 11:52 AM · Unknown Object (Project)

Mar 18 2021

RaviNarayanaswamy updated subscribers of D98838: [OpenMP] Fixed a crash in hidden helper thread.

Shilei,

How much time do  you think you  need to resolve or conclude to revert or disable with macros in 12.0

Some would like to stabilize their performance numbers and would like to do it as early as possible.
Thanks
Ravi

Mar 18 2021, 11:04 AM · Unknown Object (Project)
RaviNarayanaswamy updated subscribers of D98838: [OpenMP] Fixed a crash in hidden helper thread.

Ron,

Prefer if you  remove this from the mail " [AMD Official Use Only - Internal Distribution Only]"

Thanks
Ravi

Mar 18 2021, 10:51 AM · Unknown Object (Project)

Mar 15 2021

RaviNarayanaswamy added a comment to D97883: [libomptarget] Add allocator support for target memory.

Reasonable to drop the device number for alloc_host as all devices should be able to access host memory.

Mar 15 2021, 12:38 PM · Unknown Object (Project)

Mar 1 2021

RaviNarayanaswamy added a comment to D97616: [OpenMP] Fix support for device as host.

This is where we are heading towards in OpenMP spec
The mandatory value specifies that program execution is terminated if a device construct or
device memory routine is encountered and the device is not available or is not supported by the
implementation. or if omp_get_num_devices() would return 0.

Mar 1 2021, 2:25 PM · Unknown Object (Project)
RaviNarayanaswamy added a comment to D97616: [OpenMP] Fix support for device as host.

If OMP_TARGET_OFFLOAD=mandatory it will not fail but just return

Mar 1 2021, 12:51 PM · Unknown Object (Project)

Feb 18 2021

RaviNarayanaswamy added inline comments to D96999: [OpenMP] Fix always,from and delete for data absent at exit.
Feb 18 2021, 4:36 PM · Unknown Object (Project)
RaviNarayanaswamy added a comment to D96999: [OpenMP] Fix always,from and delete for data absent at exit.

Is this the missing behavior from D83061? Looks good, thanks!

Feb 18 2021, 3:57 PM · Unknown Object (Project)

Jan 27 2021

RaviNarayanaswamy added a comment to D95483: [OpenMP][WIP] Pass auxiliary YAML along with device image for OpenMP offload..

There are a bunch of side channels for communicating between the compiler and the runtime already. Compiler emitted magic symbols, a msgpack blob for amdgpu, writing extra stuff into the elf in general etc.

What information do you intend to pass along through this new channel, why yaml, and why for all plugins?

Jan 27 2021, 10:54 AM

Dec 1 2020

RaviNarayanaswamy accepted D92376: [llvm-link] use file magic when deciding if input should be loaded as archive.

LGTM

Dec 1 2020, 2:51 PM · Restricted Project

Sep 25 2020

RaviNarayanaswamy added a comment to D88149: [OpenMP][libomptarget] make omp_get_initial_device 5.1 compliant.

LGTM

Sep 25 2020, 2:41 PM · Unknown Object (Project)

Sep 23 2020

RaviNarayanaswamy added a comment to D88149: [OpenMP][libomptarget] make omp_get_initial_device 5.1 compliant.

Can you also remove the definition in the header file include/omptarget.h

Sep 23 2020, 4:00 PM · Unknown Object (Project)

Sep 9 2020

RaviNarayanaswamy added inline comments to D87413: [OpenMP] Load plugins from same directory as the libomptarget.so.
Sep 9 2020, 4:26 PM · Unknown Object (Project)

Jul 24 2020

RaviNarayanaswamy added a comment to D84422: [OpenMP] Fix `present` for exit from `omp target data`.

Has anyone clarified the motivation for this behavior?

I meant, is there any insight into why the spec specifies this behavior?

Instead of introducing new API functions and making all these changes in all these files, wouldn't it be easier if we just unset the PRESENT flag from arg_types in clang when we generate the call to __tgt_target_data_end_* if we are exiting from a scoped environment?

Ah, that does sound simpler. Thanks. I'll look into it.

Suppressing the presence check on exit from omp target would require a runtime change in addition to the Clang change you suggest for omp target data. However, I've so far failed to formulate a reasonable test case. Specifically, I don't yet see a way to guarantee that the data will definitely be present at the start of omp target but might not be present by the end. Is it possible? If not, then maybe we should leave the check in place for omp target.

Jul 24 2020, 3:12 PM · Restricted Project, Unknown Object (Project), Restricted Project

Jul 23 2020

RaviNarayanaswamy added a comment to D84422: [OpenMP] Fix `present` for exit from `omp target data`.

So is the test case that motivated this patch illegal OpenMP code?

#pragma omp target enter data map(alloc:i)
#pragma omp target data map(present, alloc: i)
{
  #pragma omp target exit data map(delete:i) // you cannot delete that object in the scope, illegal code?
} // fails presence check here
Jul 23 2020, 2:07 PM · Restricted Project, Unknown Object (Project), Restricted Project
RaviNarayanaswamy added a comment to D84422: [OpenMP] Fix `present` for exit from `omp target data`.

What confuses me about this interpretation of the standard is the inconsistency at data exit. So if we have an explicit omp target exit data map(present...) then we should respect the "present" semantics, whereas when we have a scoped data exit:

#pragma omp target data map(present,...)
{
  ...
} // implicit "exit data" here

then "present" should be ignored.

I agree that the paragraph from the standard leaves little room for other interpretations, I'd just like to point out that it looks inconsistent - at least to me.

Jul 23 2020, 1:47 PM · Restricted Project, Unknown Object (Project), Restricted Project

Jun 19 2020

RaviNarayanaswamy added a comment to D79972: [OpenMP5.0] map item can be non-contiguous for target update.

How do you plan to support
#pragma omp target update to (arr[1:2][1:2][0:2], x, b[1:5][0:2])
Are you going to split this into 3 updates since your are using the arg fields.

Jun 19 2020, 4:19 PM · Restricted Project

Jan 29 2020

RaviNarayanaswamy added a comment to D73657: [OPENMP] Load plugins from same directory as the libomptarget.so and quick fail mechanism for offloading plugins.

I don't recall saying needs changes.

Jan 29 2020, 3:29 PM · Restricted Project, Unknown Object (Project)

Aug 14 2019

RaviNarayanaswamy added inline comments to D64375: [OpenMP][Docs] Provide implementation status details.
Aug 14 2019, 2:40 PM · Restricted Project, Restricted Project

Jun 14 2019

RaviNarayanaswamy added a comment to D63010: [OpenMP] Add task alloc function.

LGTM

Jun 14 2019, 12:16 PM · Restricted Project, Restricted Project, Unknown Object (Project)
RaviNarayanaswamy added a reviewer for D63010: [OpenMP] Add task alloc function: RaviNarayanaswamy.
Jun 14 2019, 12:02 PM · Restricted Project, Restricted Project, Unknown Object (Project)

Nov 29 2018

RaviNarayanaswamy added a comment to D54342: Add omp_get_device_num() and update several other device API functions.

Can you enable LIBOMPTARGET_DEBUG and see if this is printed from libomptarget to confirm libomptarget is loaded and its api is used
DP("Call to omp_get_num_devices returning %zd\n", Devices_size);

Nov 29 2018, 2:39 PM · Unknown Object (Project)

Aug 30 2018

RaviNarayanaswamy accepted D51378: [OPENMP] Add support for nested 'declare target' directives.

Ok.
Thanks.

Aug 30 2018, 12:54 PM
RaviNarayanaswamy added a comment to D51378: [OPENMP] Add support for nested 'declare target' directives.

I did not see the code where check is done if Nestingdepth is 0 at end of compilation.

Aug 30 2018, 9:44 AM

Aug 29 2018

RaviNarayanaswamy added a comment to D51378: [OPENMP] Add support for nested 'declare target' directives.

We should just go with generating an error if the DeclareTargetNestingLevel is not 0 at the end of compilation unit.
Hard to detect if user accidentally forgot to have end declare in header file and had it in the include file or it was intentional.

Aug 29 2018, 1:04 PM

Aug 28 2018

RaviNarayanaswamy added a comment to D51378: [OPENMP] Add support for nested 'declare target' directives.

Is there a way to tell if the header files have matching omp declare target/omp end declare target.
The reason is if one of the header files is missing a matching omp end declare target all files which include it will end up having everything marked with declare target

Aug 28 2018, 2:31 PM

Aug 24 2018

RaviNarayanaswamy added inline comments to D51226: [OpenMP][libomptarget] rework of fatal error reporting.
Aug 24 2018, 12:03 PM
RaviNarayanaswamy added inline comments to D51226: [OpenMP][libomptarget] rework of fatal error reporting.
Aug 24 2018, 11:21 AM

Aug 23 2018

RaviNarayanaswamy added a comment to D51107: [LIBOMPTARGET] Add support for mapping of lambda captures..

If the objects which are copied are not compatible between host and target due to use of pointers which have different size in a structure then it is users responsibility.
I am more interested in where you allocate memory on device you get back an opaque object of size 64. The opaque object may be 64bit device pointer or a high 32bit pointer to device memory and low 32bit offset from that memory or it can be a pointer to a structure which has other information. The idea having libomptarget is to provide a thin layer between compiler and device specific plugin and we need to support different types of plugin.

Aug 23 2018, 1:20 PM
RaviNarayanaswamy added a comment to D51107: [LIBOMPTARGET] Add support for mapping of lambda captures..

Provide additional APIs in plugins if necessary to accomplish the arithmetic operations.
By doing arithmetic for target address in libomptarget you are assuming the pointer size is 64.

Aug 23 2018, 12:58 PM
RaviNarayanaswamy added inline comments to D51107: [LIBOMPTARGET] Add support for mapping of lambda captures..
Aug 23 2018, 9:47 AM

Aug 10 2018

RaviNarayanaswamy added a comment to D50522: [OpenMP][libomptarget] Bringing up to spec with respect to OMP_TARGET_OFFLOAD env var.

Alex: If you feel strongly about your request, I will be happy to move the code into CheckDeviceAndCtors.
It is just a suggestion. Either way is fine.

Aug 10 2018, 3:46 PM

Aug 9 2018

RaviNarayanaswamy added inline comments to D50522: [OpenMP][libomptarget] Bringing up to spec with respect to OMP_TARGET_OFFLOAD env var.
Aug 9 2018, 1:23 PM

Aug 2 2018

RaviNarayanaswamy added a comment to D50158: [OpenMP] Add placeholder functions for the depend and nowait depend clauses for target data directives..

It may be named libOMPtarget and is in openmp projects but we want to use the offloading library with other runtime libraries.

Aug 2 2018, 9:59 AM
RaviNarayanaswamy added a comment to D50158: [OpenMP] Add placeholder functions for the depend and nowait depend clauses for target data directives..

We should not be having calls to _-kmpc_omp_taskwait in libomptarget.
The wait should be done in the user code and then libomptarget routine should be called.

Aug 2 2018, 9:33 AM

Mar 16 2018

RaviNarayanaswamy added a comment to D44577: Read OMP_TARGET_OFFLOAD and provide API to access ICV.

DEFAULT implies MANDATORY or DISABLED. Don't need to communicate to libomp

Mar 16 2018, 2:26 PM

Mar 15 2018

RaviNarayanaswamy added a comment to D44522: [Libomptarget] Full implementation of the target-offload-icv.

Openmp has defined OMP_TARGET_OFFLOAD to control offloading, We should be using this

Mar 15 2018, 9:54 AM · Unknown Object (Project)

Mar 7 2018

RaviNarayanaswamy added inline comments to D44186: [OpenMP][libomptarget] New map interface: remove translation code and ensure proper alignment of struct members.
Mar 7 2018, 1:24 PM · Unknown Object (Project)

Jan 6 2016

RaviNarayanaswamy added a comment to D14031: [OpenMP] Initial implementation of OpenMP offloading library - libomptarget..

OpenMP says : " If the corresponding list item is not present in the device data environment then no assignment occurs to or from the original list item."

Jan 6 2016, 8:16 AM