Page MenuHomePhabricator

JonChesterfield (Jon Chesterfield)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 11 2015, 1:08 PM (231 w, 3 d)

Recent Activity

Yesterday

JonChesterfield created D72956: [libomptarget] Implement smid for amdgcn.
Fri, Jan 17, 1:36 PM · Restricted Project

Tue, Jan 14

JonChesterfield accepted D72525: [LIBOMPTARGET] Do not increment/decrement the refcount for "declare target" objects.

Nice. Thanks!

Tue, Jan 14, 4:12 PM · Restricted Project
JonChesterfield added a comment to D72525: [LIBOMPTARGET] Do not increment/decrement the refcount for "declare target" objects.

Thanks for the change to uint64_t

Tue, Jan 14, 11:52 AM · Restricted Project
JonChesterfield committed rG2a43688a0a07: [nfc][libomptarget] Refactor nvptx/target_impl.cu (authored by JonChesterfield).
[nfc][libomptarget] Refactor nvptx/target_impl.cu
Tue, Jan 14, 11:33 AM
JonChesterfield committed rG2d287bec3c5b: [nfc][libomptarget] Refactor amdgcn target_impl (authored by JonChesterfield).
[nfc][libomptarget] Refactor amdgcn target_impl
Tue, Jan 14, 11:33 AM
JonChesterfield closed D72719: [nfc][libomptarget] Refactor nvptx/target_impl.cu.
Tue, Jan 14, 11:33 AM · Restricted Project
JonChesterfield closed D72712: [nfc][libomptarget] Refactor amdgcn target_impl.
Tue, Jan 14, 11:33 AM · Restricted Project
JonChesterfield retitled D72719: [nfc][libomptarget] Refactor nvptx/target_impl.cu from [nfc][libomptarget] Refactor in target_impl.cu to [nfc][libomptarget] Refactor nvptx/target_impl.cu.
Tue, Jan 14, 10:23 AM · Restricted Project
JonChesterfield updated the summary of D72719: [nfc][libomptarget] Refactor nvptx/target_impl.cu.
Tue, Jan 14, 10:23 AM · Restricted Project
JonChesterfield retitled D72719: [nfc][libomptarget] Refactor nvptx/target_impl.cu from [nfc][libomptarget] Use __kmpc_atomic_add in target_impl.cu to [nfc][libomptarget] Refactor in target_impl.cu.
Tue, Jan 14, 10:23 AM · Restricted Project
JonChesterfield updated the diff for D72719: [nfc][libomptarget] Refactor nvptx/target_impl.cu.
  • Avoid trip through interface for target_impl
Tue, Jan 14, 10:23 AM · Restricted Project
JonChesterfield created D72719: [nfc][libomptarget] Refactor nvptx/target_impl.cu.
Tue, Jan 14, 10:04 AM · Restricted Project
JonChesterfield created D72712: [nfc][libomptarget] Refactor amdgcn target_impl.
Tue, Jan 14, 8:59 AM · Restricted Project

Mon, Jan 13

Herald added a reviewer for D69930: [OpenMP] Introduce the OpenMPOpt transformation pass: sstefan1.

The plumbing looks sane to me. I imagine any bugs or limitations we miss at review will make themselves apparent as more complicated optimisations are included.

Mon, Jan 13, 6:23 PM · Restricted Project
JonChesterfield requested changes to D71847: [OpenMP][Part 1] Reusable OpenMP context/traits handling.

Mostly minor comments. You've got a lot of mileage out of x macros. I really like the unit tests generated from the same .def as the source.

Mon, Jan 13, 6:14 PM · Restricted Project
JonChesterfield added a comment to D72525: [LIBOMPTARGET] Do not increment/decrement the refcount for "declare target" objects.

but in such problematic code even a 64-bit counter could overflow. Actually the above example is taylor-made to intentionally make the refcount overflow.

Mon, Jan 13, 8:31 AM · Restricted Project
JonChesterfield added a comment to D72525: [LIBOMPTARGET] Do not increment/decrement the refcount for "declare target" objects.

Change looks good to me as is. Some notes / questions on the reference counting.

Mon, Jan 13, 3:29 AM · Restricted Project

Fri, Jan 10

JonChesterfield added a comment to D72472: [LIBOMPTARGET]Ignore empty target descriptors..

Nice catch, thanks

Fri, Jan 10, 3:22 AM · Restricted Project

Fri, Jan 3

JonChesterfield added a comment to D72171: [OpenMP] NFC: Fix trivial typos in comments.

Great! Thank you

Fri, Jan 3, 1:59 PM · Restricted Project

Mon, Dec 30

JonChesterfield committed rGbc48af8c575a: [libomptarget][nfc] Change unintentional target_impl prefix to kmpc_impl (authored by JonChesterfield).
[libomptarget][nfc] Change unintentional target_impl prefix to kmpc_impl
Mon, Dec 30, 12:52 PM
JonChesterfield added a comment to D71988: [OpenMP][WIP] Make the kmp_depend_info type fit in 128 bits..

Ah, right. I follow. Some groundwork to be done first then, thanks.

Mon, Dec 30, 6:38 AM · Restricted Project
JonChesterfield added a comment to D71988: [OpenMP][WIP] Make the kmp_depend_info type fit in 128 bits..

I"d like to understand that use case. Someone compiles libomp from trunk, pastes it over the version from repos, but leaves the rest of the toolchain unchanged. Breakage seems a fair result.

Mon, Dec 30, 6:00 AM · Restricted Project
JonChesterfield added a comment to D71988: [OpenMP][WIP] Make the kmp_depend_info type fit in 128 bits..

Do we have a consensus / policy on ABI breaks?

Mon, Dec 30, 4:35 AM · Restricted Project
JonChesterfield accepted D71948: [OpenMP] Use the OpenMPIRBuilder for `cancel` directives.

I like this, thanks. Very clear.

Mon, Dec 30, 4:18 AM · Restricted Project
JonChesterfield added inline comments to D71987: [OpenMP][NFC] Add a couple of TODOs to the runtime.
Mon, Dec 30, 3:36 AM · Restricted Project
JonChesterfield added inline comments to D71989: [OpenMP][IRBuilder][WIP] Prototype `omp task` support.
Mon, Dec 30, 3:21 AM · Restricted Project, Restricted Project

Mon, Dec 23

JonChesterfield requested changes to D68100: [OpenMP 5.0] declare mapper runtime implementation.

The premise seems OK, but three copies of a large block of control flow is not so good. Why the duplication?

Mon, Dec 23, 7:07 AM · Restricted Project
JonChesterfield added a comment to D71830: [OpenMP][Part 2] Use reusable OpenMP context/traits handling.

Big patch but looks like a net decrease in complexity. Please could you clang format the areas phabricator is complaining about?

Mon, Dec 23, 6:21 AM · Restricted Project, Restricted Project

Sat, Dec 21

JonChesterfield accepted D71782: [OpenMP] [NFC] Refactor data mapping to prepare for declare mapper implementation.

Thanks!

Sat, Dec 21, 3:13 PM

Fri, Dec 20

JonChesterfield added a comment to D71782: [OpenMP] [NFC] Refactor data mapping to prepare for declare mapper implementation.

Looks good, though I haven't built it to check the tests still pass. I take it this is the NFC subset of the previous patch?

Fri, Dec 20, 1:47 PM

Thu, Dec 19

JonChesterfield committed rG63e2aa5658bd: [libomptarget][nfc] Provide target_impl malloc/free (authored by JonChesterfield).
[libomptarget][nfc] Provide target_impl malloc/free
Thu, Dec 19, 8:54 AM
JonChesterfield closed D71685: [libomptarget][nfc] Provide target_impl malloc/free.
Thu, Dec 19, 8:54 AM · Restricted Project

Dec 18 2019

JonChesterfield added inline comments to D71685: [libomptarget][nfc] Provide target_impl malloc/free.
Dec 18 2019, 6:28 PM · Restricted Project
JonChesterfield created D71685: [libomptarget][nfc] Provide target_impl malloc/free.
Dec 18 2019, 6:19 PM · Restricted Project
JonChesterfield committed rGb40822fc140d: [libomptarget][nvptx] Fix build, second symbol reordering (authored by JonChesterfield).
[libomptarget][nvptx] Fix build, second symbol reordering
Dec 18 2019, 6:09 PM
JonChesterfield committed rG89a2bef27aae: [libomptarget][nvptx] Fix build, symbol ordering in target_impl.h (authored by JonChesterfield).
[libomptarget][nvptx] Fix build, symbol ordering in target_impl.h
Dec 18 2019, 5:59 PM
JonChesterfield committed rG9aefe5f65ec6: [libomptarget][amdgcn] Correct return type of extern __clock64 to unsigned (authored by JonChesterfield).
[libomptarget][amdgcn] Correct return type of extern __clock64 to unsigned
Dec 18 2019, 4:14 PM
JonChesterfield committed rG2caeaf2f455d: [libomptarget][nfc] Introduce atomic wrapper function (authored by JonChesterfield).
[libomptarget][nfc] Introduce atomic wrapper function
Dec 18 2019, 12:15 PM
JonChesterfield closed D71404: [libomptarget][nfc] Introduce atomic wrapper function.
Dec 18 2019, 12:14 PM · Restricted Project, Restricted Project
JonChesterfield updated the summary of D71404: [libomptarget][nfc] Introduce atomic wrapper function.
Dec 18 2019, 12:14 PM · Restricted Project, Restricted Project
JonChesterfield committed rG8adae6027c08: [libomptarget][nfc] Extract function from data_sharing, move to common (authored by JonChesterfield).
[libomptarget][nfc] Extract function from data_sharing, move to common
Dec 18 2019, 11:46 AM
JonChesterfield closed D71643: [libomptarget][nfc] Extract function from data_sharing, move to common.
Dec 18 2019, 11:45 AM · Restricted Project

Dec 17 2019

JonChesterfield added a comment to D71384: [libomptarget] Implement hsa plugin.

Copying this file into the trunk source tree builds for me (using parts of a local aomp build)

Dec 17 2019, 7:05 PM · Restricted Project
JonChesterfield updated the diff for D71404: [libomptarget][nfc] Introduce atomic wrapper function.
  • Change to template implementation
Dec 17 2019, 6:36 PM · Restricted Project, Restricted Project
JonChesterfield updated the diff for D71404: [libomptarget][nfc] Introduce atomic wrapper function.
  • Change to template implementation
Dec 17 2019, 6:27 PM · Restricted Project, Restricted Project
JonChesterfield added a comment to D69954: [OpenMP][Opt] Delete read-only parallel regions.

It seems to be an openmp restriction that parallel regions can't exit/abort/return etc, so the current path looks fine. Perhaps an assertion on the attribute?

Dec 17 2019, 5:38 PM · Restricted Project
JonChesterfield accepted D69954: [OpenMP][Opt] Delete read-only parallel regions.
Dec 17 2019, 5:38 PM · Restricted Project
JonChesterfield created D71643: [libomptarget][nfc] Extract function from data_sharing, move to common.
Dec 17 2019, 5:29 PM · Restricted Project
JonChesterfield committed rG0c83f8ccc745: [libomptarget][nfc] Move three files under common, build them for amdgcn (authored by JonChesterfield).
[libomptarget][nfc] Move three files under common, build them for amdgcn
Dec 17 2019, 10:05 AM
JonChesterfield closed D71601: [libomptarget][nfc] Move three files under common, build them for amdgcn.
Dec 17 2019, 10:05 AM · Restricted Project
JonChesterfield added a comment to D71384: [libomptarget] Implement hsa plugin.

I think next steps from here are:

  • get the file building against trunk
  • work out what the requirements on ATMI are - I think ROCm and AOMP can use the same version, but haven't tested carefully enough to be sure yet
  • clean up the fprintf(stderr...) noise
  • try to simplify the cmake searching logic
Dec 17 2019, 5:23 AM · Restricted Project
JonChesterfield added a comment to D71404: [libomptarget][nfc] Introduce atomic wrapper function.

Let's do that then.

Dec 17 2019, 5:13 AM · Restricted Project, Restricted Project
JonChesterfield added a comment to D69954: [OpenMP][Opt] Delete read-only parallel regions.

Aside from the inline comment about functions that don't return, this looks good to me. Simple code, heavily tested. Thanks

Dec 17 2019, 5:13 AM · Restricted Project
JonChesterfield created D71601: [libomptarget][nfc] Move three files under common, build them for amdgcn.
Dec 17 2019, 4:54 AM · Restricted Project
JonChesterfield committed rG3d3e4076cd65: [libomptarget][nfc] Move omp locks under target_impl (authored by JonChesterfield).
[libomptarget][nfc] Move omp locks under target_impl
Dec 17 2019, 4:26 AM
JonChesterfield closed D71574: [libomptarget][nfc] Move omp locks under target_impl.
Dec 17 2019, 4:25 AM · Restricted Project

Dec 16 2019

JonChesterfield committed rGce12a523b0e1: [libomptarget][nfc] Move timer functions behind target_impl (authored by JonChesterfield).
[libomptarget][nfc] Move timer functions behind target_impl
Dec 16 2019, 6:26 PM
JonChesterfield closed D71584: [libomptarget][nfc] Move timer functions behind target_impl.
Dec 16 2019, 6:26 PM · Restricted Project
JonChesterfield added a comment to D71574: [libomptarget][nfc] Move omp locks under target_impl.

Apologies for changing the patch post review. The print calls are now back in the omp_ prefixed functions. That seems a better separation of concerns.

Dec 16 2019, 5:40 PM · Restricted Project
JonChesterfield updated the diff for D71574: [libomptarget][nfc] Move omp locks under target_impl.
  • Move print statements back into generic functions
Dec 16 2019, 5:40 PM · Restricted Project
JonChesterfield committed rG53bcd1e1413c: [libomptarget][nfc] Wrap cuda min() in target_impl (authored by JonChesterfield).
[libomptarget][nfc] Wrap cuda min() in target_impl
Dec 16 2019, 5:31 PM
JonChesterfield closed D71580: [libomptarget][nfc] Wrap cuda min() in target_impl.
Dec 16 2019, 5:31 PM · Restricted Project
JonChesterfield added inline comments to D71580: [libomptarget][nfc] Wrap cuda min() in target_impl.
Dec 16 2019, 5:30 PM · Restricted Project
JonChesterfield updated the diff for D71580: [libomptarget][nfc] Wrap cuda min() in target_impl.
  • More explicit cast
Dec 16 2019, 5:30 PM · Restricted Project
JonChesterfield created D71584: [libomptarget][nfc] Move timer functions behind target_impl.
Dec 16 2019, 5:30 PM · Restricted Project
JonChesterfield created D71580: [libomptarget][nfc] Wrap cuda min() in target_impl.
Dec 16 2019, 4:16 PM · Restricted Project
JonChesterfield added a comment to D71574: [libomptarget][nfc] Move omp locks under target_impl.

Thanks. This is most of the target specific code in libcall, the remaining function is for omp_get_wtime. I'll put up a patch for that shortly.

Dec 16 2019, 4:16 PM · Restricted Project
JonChesterfield added inline comments to D71580: [libomptarget][nfc] Wrap cuda min() in target_impl.
Dec 16 2019, 4:16 PM · Restricted Project
JonChesterfield created D71574: [libomptarget][nfc] Move omp locks under target_impl.
Dec 16 2019, 2:59 PM · Restricted Project
JonChesterfield committed rG69fcc6ecc15b: Revert "Revert "[libomptarget] Move resource id functions into target specific… (authored by JonChesterfield).
Revert "Revert "[libomptarget] Move resource id functions into target specific…
Dec 16 2019, 8:17 AM
JonChesterfield added a reverting change for rGdd8a7fcdd73d: Revert "[libomptarget] Move resource id functions into target specific code…: rG69fcc6ecc15b: Revert "Revert "[libomptarget] Move resource id functions into target specific….
Dec 16 2019, 8:16 AM
JonChesterfield closed D71502: Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"".
Dec 16 2019, 8:16 AM · Restricted Project
JonChesterfield added a comment to D71502: Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"".

Ping. I'm blocked until this is resolved.

Yes, it works, sorry for the delay.

Dec 16 2019, 8:15 AM · Restricted Project
JonChesterfield added a comment to D71502: Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"".

Ping. I'm blocked until this is resolved.

Dec 16 2019, 7:38 AM · Restricted Project

Dec 14 2019

JonChesterfield added a comment to D71502: Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"".

One would get missing symbols if objects compiled against the previous support.h were linked to ones compiled against the files here, e.g. if one attempted an incremental build of deviceRTL despite the dependency graph changing between revisions.

Dec 14 2019, 3:12 AM · Restricted Project

Dec 13 2019

JonChesterfield added a reverting change for rGdd8a7fcdd73d: Revert "[libomptarget] Move resource id functions into target specific code…: D71502: Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"".
Dec 13 2019, 6:19 PM
JonChesterfield created D71502: Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"".
Dec 13 2019, 6:19 PM · Restricted Project
JonChesterfield added a comment to rGdbb3fec8adfc: [libomptarget] Move resource id functions into target specific code, implement….

All passes fine for me, with a debug build using clang 9. Symbols in libraries look fine too.

Dec 13 2019, 6:01 PM
JonChesterfield added a comment to rGdbb3fec8adfc: [libomptarget] Move resource id functions into target specific code, implement….

Thanks. There's something very wrong here - every compilation unit can see the inline definition (else they wouldn't compile), so debug is throwing away the definition without cause to believe there will be an implementation in another TU.

Dec 13 2019, 3:54 PM
JonChesterfield added a comment to rGdbb3fec8adfc: [libomptarget] Move resource id functions into target specific code, implement….

Which build? Debug/release nvcc/clang?

Dec 13 2019, 2:41 PM
JonChesterfield added a comment to rGdbb3fec8adfc: [libomptarget] Move resource id functions into target specific code, implement….

@ABataev wrote:

Reverted in dd8a7fcdd73dd63529b81bf9f72c7529dfe99ec3
Breaks NVPTX tests with unresolved symbols.

Dec 13 2019, 1:55 PM
JonChesterfield added a comment to D71384: [libomptarget] Implement hsa plugin.

Nice feedback, thanks!

Dec 13 2019, 10:42 AM · Restricted Project
JonChesterfield accepted D70289: [OpenMP][NFCI] Use the libFrontend ProcBindKind in Clang.

Nice cleanup, thanks

Dec 13 2019, 9:57 AM · Restricted Project, Restricted Project
JonChesterfield committed rG40d72134fd34: [libomptarget] Build most of common/src for amdgcn (authored by JonChesterfield).
[libomptarget] Build most of common/src for amdgcn
Dec 13 2019, 9:57 AM
JonChesterfield closed D71446: [libomptarget] Build most of common/src for amdgcn.
Dec 13 2019, 9:57 AM · Restricted Project
JonChesterfield added a comment to D71404: [libomptarget][nfc] Introduce atomic wrapper function.

That sounds pragmatic. A single header located under common/ will work for nvptx and amdgcn without #ifdef, so lets go with that. We can rearrange the code if necessary when a third target arises or when amdgcn/nvptx wants to implement the atomics differently.

Dec 13 2019, 9:57 AM · Restricted Project, Restricted Project
JonChesterfield added a comment to D71241: [OpenMP][WIP] Use overload centric declare variants.

Has anyone actually asked Richard to look at this? He isn't subscribed to the diff and may not be watching openmp-dev.

Dec 13 2019, 7:11 AM · Restricted Project
JonChesterfield added inline comments to D71384: [libomptarget] Implement hsa plugin.
Dec 13 2019, 6:44 AM · Restricted Project
JonChesterfield committed rG56adcebfda84: [libomptarget][nfc] Add nop syncwarp function for amdgcn (authored by JonChesterfield).
[libomptarget][nfc] Add nop syncwarp function for amdgcn
Dec 13 2019, 6:35 AM
JonChesterfield updated the diff for D71446: [libomptarget] Build most of common/src for amdgcn.
  • rebase
Dec 13 2019, 6:34 AM · Restricted Project
JonChesterfield added a comment to D71404: [libomptarget][nfc] Introduce atomic wrapper function.

To be honest, I did not follow this so if my response doesn't make sense let me know.

Dec 13 2019, 3:31 AM · Restricted Project, Restricted Project
JonChesterfield added a comment to D71446: [libomptarget] Build most of common/src for amdgcn.

Couldn't we provide these functions in the target_impl.h of amdgcn?

Dec 13 2019, 3:05 AM · Restricted Project

Dec 12 2019

JonChesterfield added a comment to D71404: [libomptarget][nfc] Introduce atomic wrapper function.

There's an outstanding design point here.

Dec 12 2019, 5:57 PM · Restricted Project, Restricted Project
JonChesterfield updated subscribers of D71446: [libomptarget] Build most of common/src for amdgcn.
Dec 12 2019, 5:47 PM · Restricted Project
JonChesterfield added a comment to D71241: [OpenMP][WIP] Use overload centric declare variants.

But I suggest to discuss this with Richard Smith.

Dec 12 2019, 5:37 PM · Restricted Project
JonChesterfield added a comment to D71404: [libomptarget][nfc] Introduce atomic wrapper function.
template <typename T> T __kmpc_impl_atomic_exchange(T *Ptr, T Val) {
  return atomicExch(Ptr, Val);
}
Dec 12 2019, 5:37 PM · Restricted Project, Restricted Project
JonChesterfield added a comment to D71446: [libomptarget] Build most of common/src for amdgcn.

Enabled by D71404. D71382 is sufficient to compile support.cu if device declarations for malloc, free are provided.

Dec 12 2019, 5:11 PM · Restricted Project
JonChesterfield created D71446: [libomptarget] Build most of common/src for amdgcn.
Dec 12 2019, 5:10 PM · Restricted Project
JonChesterfield added a comment to D71404: [libomptarget][nfc] Introduce atomic wrapper function.

__kmpc_atomic_foo works for me, as does running sed once.

Dec 12 2019, 4:59 PM · Restricted Project, Restricted Project
JonChesterfield added a comment to D66426: [lld] Enable a watermark of loadable sections to be generated and placed in a note section.

Partially guarding against a user accidentally or incompetently modifying a binary isn't sufficiently useful to justify adding code to lld in my opinion.

Dec 12 2019, 4:40 PM · Restricted Project