Page MenuHomePhabricator

RaviNarayanaswamy (Ravi Narayanaswamy)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 11 2015, 7:57 AM (284 w, 7 h)

Recent Activity

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 · 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