Create extensions directory. #81
Conversation
…ed Shared Memory (USM) proposals. Signed-off-by: James Brodman <james.brodman@intel.com>
|
@jbrodman, please, sign your commit as described here: https://github.com/intel/llvm/blob/intel/CONTRIBUTING.md. |
There was a problem hiding this comment.
That seems very useful.
Can you also link the extensions to https://gitlab.khronos.org/sycl/Specification/wikis/home#some-public-extensions-or-proposals when this is merged in?
| id<dimensions> workItemOffset, kernelType kernelFunc); | ||
|
|
||
| template <typename KernelName, typename KernelType, int dimensions> | ||
| event parallel_for(nd_range<dimensions> executionRange, kernelType kernelFunc); |
There was a problem hiding this comment.
You are not interested in the hierarchical parallelism of SYCL instead of the one with nd_range?
|
|
||
| [source,cpp] | ||
| ---- | ||
| void* sycl_malloc_device(size_t size, const sycl::device& dev); |
There was a problem hiding this comment.
All your functions start with sycl_. What about using some C++ namespaces?
Otherwise the API looks very C like. This C API is also nice, to have some code doing SYCL-friendly allocation usable inside C applications.
But do you plan to add some higher-level modern C++ fancy API?
There was a problem hiding this comment.
Yes, that part have a very C-like API by design in order to minimize spec changes. Building a C++-style allocator on top of those functions should be very trivial to do in an implementation.
* add device tests from intel/llvm * disable tests which use clang command line format when clang-cl is used * increase individual test timeout to 600 sec
…… (#67069) We noticed some performance issue while in lldb-vscode for grabing the name of the SBValue. Profiling shows SBValue::GetName() can cause synthetic children provider of shared/unique_ptr to deference underlying object and complete it type. This patch lazily moves the dereference from synthetic child provider's Update() method to GetChildAtIndex() so that SBValue::GetName() won't trigger the slow code path. Here is the culprit slow code path: ``` ... frame #59: 0x00007ff4102e0660 liblldb.so.15`SymbolFileDWARF::CompleteType(this=<unavailable>, compiler_type=0x00007ffdd9829450) at SymbolFileDWARF.cpp:1567:25 [opt] ... frame #67: 0x00007ff40fdf9bd4 liblldb.so.15`lldb_private::ValueObject::Dereference(this=0x0000022bb5dfe980, error=0x00007ffdd9829970) at ValueObject.cpp:2672:41 [opt] frame #68: 0x00007ff41011bb0a liblldb.so.15`(anonymous namespace)::LibStdcppSharedPtrSyntheticFrontEnd::Update(this=0x000002298fb94380) at LibStdcpp.cpp:403:40 [opt] frame #69: 0x00007ff41011af9a liblldb.so.15`lldb_private::formatters::LibStdcppSharedPtrSyntheticFrontEndCreator(lldb_private::CXXSyntheticChildren*, std::shared_ptr<lldb_private::ValueObject>) [inlined] (anonymous namespace)::LibStdcppSharedPtrSyntheticFrontEnd::LibStdcppSharedPtrSyntheticFrontEnd(this=0x000002298fb94380, valobj_sp=<unavailable>) at LibStdcpp.cpp:371:5 [opt] ... frame #78: 0x00007ff40fdf6e42 liblldb.so.15`lldb_private::ValueObject::CalculateSyntheticValue(this=0x000002296c66a500) at ValueObject.cpp:1836:27 [opt] frame #79: 0x00007ff40fdf1939 liblldb.so.15`lldb_private::ValueObject::GetSyntheticValue(this=<unavailable>) at ValueObject.cpp:1867:3 [opt] frame #80: 0x00007ff40fc89008 liblldb.so.15`ValueImpl::GetSP(this=0x0000022c71b90de0, stop_locker=0x00007ffdd9829d00, lock=0x00007ffdd9829d08, error=0x00007ffdd9829d18) at SBValue.cpp:141:46 [opt] frame #81: 0x00007ff40fc7d82a liblldb.so.15`lldb::SBValue::GetSP(ValueLocker&) const [inlined] ValueLocker::GetLockedSP(this=0x00007ffdd9829d00, in_value=<unavailable>) at SBValue.cpp:208:21 [opt] frame #82: 0x00007ff40fc7d817 liblldb.so.15`lldb::SBValue::GetSP(this=0x00007ffdd9829d90, locker=0x00007ffdd9829d00) const at SBValue.cpp:1047:17 [opt] frame #83: 0x00007ff40fc7da6f liblldb.so.15`lldb::SBValue::GetName(this=0x00007ffdd9829d90) at SBValue.cpp:294:32 [opt] ... ``` Differential Revision: https://reviews.llvm.org/D159542
Initially populate it with Ordered Queue and Unified Shared Memory (USM) proposals.
This will be the area where additional extensions are staged.