uxlfoundation / oneapi-spec Goto Github PK
View Code? Open in Web Editor NEWoneAPI Specification source files
Home Page: https://spec.oneapi.com
License: Other
oneAPI Specification source files
Home Page: https://spec.oneapi.com
License: Other
Can you write a sentence or 2 about why you need dpstd::begin vs standard C++ iterators? I think the answer is that by using buffers+dpstd::begin, data can live on the device between invocations. Also, I incorrectly assumed that you could not use C++ iterators so that would be clearer if you explained dpstd::begin.
In #68 i see that corresponding fix have been created, however looks it doesn't work in some cases:
example
https://github.com/napetrov/oneapi-spec/runs/490630546
Should we use different method to validate for forks?
Currently all names mentioned without oneAPI prefix. So it’s not matching correct legal name and require addition of oneAPI in each case.
Suggest to implement this for 0.8 version
Currently DPC++ does not support recursive function calls on device. Is it possible to add this support? It's very important for our ECP WarpX code (https://github.com/ECP-WarpX/WarpX/).
Could DPC++ support adding host back functions to an ordered queue for device?
With the current DPC++, in order to use local memory in a device function called inside a kernel, we have to pass it as argument to the device function. Could DPC++ support static local memory (e.g., something like __local__ a[256]
) anywhere in device code? Could it also support dynamic local memory (e.g., something like extern __local__ a[]
) with the amount of local memory specified at runtime during kernel launch?
Can you write some text to describe algorithms for 'Specific API of oneDPL' If there is a product manual, you can copy from it.
From Timmie:
Yes, I can add that to the section. The description is where I'll also describe the optional parameters to the algorithms, e.g., initial values, comparators, etc. that @akukanov suggested earlier this week to reduce the number of functions we list in this section.
localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/lapack/trtrs.rst:111: WARNING: Insufficient data supplied (1 row(s)); no data remaining for table body, required b\
y "list-table" directive.
.. list-table::
:header-rows: 1
* - b
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/clear_status.rst:36: WARNING: Error parsing content block for the "list-table" directive: uniform two-level bul\
let list expected, but row 2 does not contain the same number of items as row 1 (1 vs 2).
.. list-table::
:header-rows: 1
* - Status
- Description
* - Successful Execution
* - ``status::success``
- VM function execution completed successfully
* - ``status::not_defined``
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/create_error_handler.rst:113: WARNING: Error parsing content block for the "list-table" directive: uniform two-\
level bullet list expected, but row 2 does not contain the same number of items as row 1 (1 vs 2).
.. list-table::
:header-rows: 1
* - Status
- Description
* - Successful Execution
* - ``status::success``
- VM function execution completed successfully
* - ``status::not_defined``
localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/get_mode.rst:33: WARNING: Error parsing content block for the "list-table" directive: uniform two-level bullet \
list expected, but row 2 does not contain the same number of items as row 1 (1 vs 2).
.. list-table::
:header-rows: 1
* - Value of mode
- Description
* - Accuracy Control
* - ``mode::ha``
- High accuracy versions of VM functions.
* - ``mode::la``
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/get_status.rst:34: WARNING: Error parsing content block for the "list-table" directive: uniform two-level bulle
t list expected, but row 2 does not contain the same number of items as row 1 (1 vs 2).
.. list-table::
:header-rows: 1
* - Status
- Description
* - Successful Execution
* - ``status::success``
- VM function execution completed successfully
* - ``status::not_defined``
- VM status not define
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/set_status.rst:36: WARNING: Error parsing content block for the "list-table" directive: uniform two-level bulle
t list expected, but row 2 does not contain the same number of items as row 1 (1 vs 2).
.. list-table::
:header-rows: 1
* - Status
- Description
* - Successful Execution
* - ``status::success``
- VM function execution completed successfully
* - ``status::not_defined``
- VM status not defined
* - Warnings
* - ``status::accuracy_warning``
localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/setmode.rst:50: WARNING: Error parsing content block for the "list-table" directive: uniform two-level bullet l\
ist expected, but row 2 does not contain the same number of items as row 1 (1 vs 2).
.. list-table::
:header-rows: 1
* - Value of mode
- Description
* - Accuracy Control
* - ``mode::ha``
- High accuracy versions of VM functions.
* - ``mode::la``
The :name: with GUID are introduced by conversion from DITA, but are not used
.. container:: section
:name: GUID-753F13BA-A3C7-4F24-90F1-14B6279BD95C
In SYCL, you control sequencing when using buffers by creating accessors and declaring if they are used read-only or read-write.
It seems like dpstd::begin should be able to express the same sequencing control, but there is no discussion in the text. Is dpstd::begin always creating a read/write accessor internally? Does a for_each wait on the queue when done? What happens when I intermix accessors and dpstd::begin?
Notices link in the footer always looks in the current directory. I could find a way to make it reference top of tree. There is always a notices link in the bottom left in the contents so I will delete it instead.
Check that these links are appropriate. In general, we should not refer to product docs.
./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-commit.rst:66: Functions <https://software.intel.com/en-us/onemkl-developer-refer\
ence-c-status-checking-functions>__ ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-computebackward-typename-iotype.rst:45:
transform <https://software.intel.com/en\
-us/onemkl-developer-reference-c-fourier-transform-functions#FORMULA>__ ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-computebackward-typename-iotype.rst:61: C/C++ <https://software.intel.com/en-us/o\ nemkl-developer-reference-c-configuring-and-computing-an-fft-in-c-c>
.
./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-computebackward-typename-iotype.rst:66: Functions <https://software.intel.com/en-\
us/onemkl-developer-reference-c-status-checking-functions>__ ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-computeforward-typename-iotype.rst:44:
transform <https://software.intel.com/en-\
us/onemkl-developer-reference-c-fourier-transform-functions#FORMULA>__ ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-computeforward-typename-iotype.rst:60: C/C++ <https://software.intel.com/en-us/on\ emkl-developer-reference-c-configuring-and-computing-an-fft-in-c-c>
.
./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-computeforward-typename-iotype.rst:65: Functions <https://software.intel.com/en-u\
s/onemkl-developer-reference-c-status-checking-functions>__ ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-getvalue.rst:44:
DftiGetValue <https://software.intel.com/en-us/onemkl-developer\
-reference-c-dftigetvalue#BC7944B8-F01C-40C4-8EAA-6C3422C9C838>__ ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-getvalue.rst:58: Functions <https://software.intel.com/en-us/onemkl-developer-ref\ erence-c-status-checking-functions>
__
./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-setvalue.rst:44: Params <https://software.intel.com/en-us/onemkl-developer-refere\
nce-c-dftisetvalue>__. ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-setvalue.rst:78:
DftiSetValue <https://software.intel.com/en-us/onemkl-developer\
-reference-c-dftisetvalue#7E6778F1-D80D-4CED-82F4-90CF4600FA57>__. ./elements/oneMKL/source/domains/dft/mkl-dft-descriptor-mkl-dft-precision-mkl-dft-domain-setvalue.rst:83: Functions <https://software.intel.com/en-us/onemkl-developer-ref\ erence-c-status-checking-functions>
__
Querying sycl::info::device::sub_group_size gives several numbers. For example, we get 8, 16 and 32 for Gen9. We would like to specify the sub group size and this feature is supported. All three sizes seem to work except that subgroup primitives such as shuffle_down do not work for all sizes. By try and error, we have found that shuffle_down works for 16. Could oneAPI provide a query function for returning the "primitive" subgroup size?
Populate roadmap.rst with some milestones. For example 1st drop of API descriptions in RST. Final drop.
Request to provide access to thread id, group id, memory fence, barrier functions, etc. without using an nd_item like object
Please try to clear all the doxygen warnings.
cd source/elements/oneVPL
doxygen Doxyfile /build/source/elements/oneVPL/include/vplmemory/vplm.h:339: warning: explicit link request to 'vplm_mem' could not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:339: warning: explicit link request to 'vplm_mem' could not be resolved /build/source/elements/oneVPL/include/vpl/vpl.hpp:30: warning: argument 'optional' of command @param is not found in the argument list \ of vpl::Decode::Decode(VplFourCC src_format, VplTargetDevice device=VPL_TARGET_DEVICE_DEFAULT) /build/source/elements/oneVPL/include/vpl/vpl.hpp:35: warning: The following parameter of vpl::Decode::Decode(VplFourCC src_format, Vpl\ TargetDevice device=VPL_TARGET_DEVICE_DEFAULT) is not documented: parameter 'device' /build/source/elements/oneVPL/include/vplmemory/vplm.h:339: warning: explicit link request to 'vplm_mem' could not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:339: warning: explicit link request to 'vplm_mem' could not be resolved /build/source/elements/oneVPL/include/vpl/vpl.hpp:30: warning: argument 'optional' of command @param is not found in the argument list \ of vpl::Decode::Decode(VplFourCC src_format, VplTargetDevice device=VPL_TARGET_DEVICE_DEFAULT) /build/source/elements/oneVPL/include/vpl/vpl.hpp:35: warning: The following parameter of vpl::Decode::Decode(VplFourCC src_format, Vpl\ TargetDevice device=VPL_TARGET_DEVICE_DEFAULT) is not documented: parameter 'device' /build/source/elements/oneVPL/include/vplmemory/vplm.h:294: warning: explicit link request to 'vplm_on_destroy_cb' could not be resolve\ d /build/source/elements/oneVPL/include/vplmemory/vplm.h:45: warning: explicit link request to '_vplm_status' could not be resolved <unknown>:1: warning: explicit link request to 'vplm_mem' could not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:319: warning: explicit link request to 'info' could not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:320: warning: explicit link request to 'info' could not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:324: warning: explicit link request to 'vplm_create_from_cpu_image' could not be\ resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:368: warning: explicit link request to 'vplm_unref' could not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm.h:380: warning: explicit link request to 'VPLM_PROPERTY_CALLBACK_ON_DESTROY' could\ not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm_opencl.h:102: warning: explicit link request to 'vplm_cl_begin_image_access' could\ not be resolved /build/source/elements/oneVPL/include/vplmemory/vplm_opencl.h:102: warning: explicit link request to 'vplm_cl_end_image_access' could n\ ot be resolved /build/source/elements/oneVPL/include/vplmemory/vplm_vaapi.h:59: warning: explicit link request to 'vplm_cl_begin_image_access' could n\ ot be resolved /build/source/elements/oneVPL/include/vplmemory/vplm_vaapi.h:59: warning: explicit link request to 'vplm_cl_end_image_access' could not\ be resolved
Could DPC++ support global variables in device memory and USM, and a memcpy function for copying data from host to the global variable?
Long lines of text do not wrap properly in a table, and the reader has to scroll to see content:
Related:
There are 2 css files with identical content:
It seems that the second one should be removed.
in roadmap.rst
onemkl::rng::wichmann_hill
==========================
.. container::
Wichmann-Hill pseudorandom number generator (a set of 273 basic
generators) from NAG Numerical Libraries [NAG].
.. container:: section
:name: GUID-753F13BA-A3C7-4F24-90F1-14B6279BD95C
.. rubric:: Syntax
:class: sectiontitle
.. container:: dlsyntaxpara
.. cpp:function:: class wichmann_hill : internal::engine_base<wichmann_hill>{
.. cpp:function:: public:
.. cpp:function:: wichmann_hill (cl::sycl::queue& queue, std::uint32_t seed, std::uint32_t engine_idx)
.. cpp:function:: wichmann_hill (cl::sycl::queue& queue, std::initializer_list<std::uint32_t> seed, std::uint32_t engine_idx)
.. cpp:function:: wichmann_hill (const wichmann_hill& other)
.. cpp:function:: wichmann_hill& operator=(const wichmann_hill& other)
.. cpp:function:: ~wichmann_hill()
.. cpp:function:: }
.. rubric:: Include Files
Link should always point to latest instead of current doc
If you are doing a for_each with an execution policy that maps to sycl, the function will inherit the SYCL/DPC++ limitations for kernels. We should note that by referring to the DPC++ spec.
in roadmap.rst
In more reading section of your README the link to the style guide is broken.
In roadmap.rst
python ../../../scripts/element.py html
Ignore the RemovedInSphinx30 warnings, but please fix these or let me know if you would rather I look at them.
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneDNN/source/index.rst:100: WARNING: Duplicate declaration, dnnl::me\ mory::undef /localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneDNN/source/index.rst:100: WARNING: Duplicate declaration, dnnl::un\ def /localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneDNN/source/index.rst:100: WARNING: Duplicate declaration, dnnl::un\ def /localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneDNN/source/index.rst:100: WARNING: Duplicate declaration, dnnl::un\ def /localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneDNN/source/index.rst:100: WARNING: Duplicate declaration, dnnl::en\ gine
Needs some discussion of how USM & PSTL interact.
I should be able to do pass an iterator for data in USM to a for_each. I am not clear on how you would do sequencing for PSTL/PSTL as well as PSTL/direct SYCL access
Something like this, but simpler: https://w3c.github.io/manifest/
in roadmap.rst
mkl conf.py is not set to ignore inc.rst
Copy patter from to level conf.py
localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/vector_math.inc.rst:47: WARNING: toctree contains reference to nonexisting document 'domains/vm/vm/special-valu\
e-notations'
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/vector_math.inc.rst:47: WARNING: toctree contains reference to nonexisting document 'domains/vm/vm/vm-mathemati\
cal-functions'
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/vector_math.inc.rst:47: WARNING: toctree contains reference to nonexisting document 'domains/vm/vm/vm-service-f\
unctions'
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/vector_math.inc.rst:47: WARNING: toctree contains reference to nonexisting document 'domains/vm/vm/miscellaneou\
s-vm-functions'
/localdisk/work/rscohn1/Projects/spec/oneapi-spec/source/elements/oneMKL/source/domains/vm/vector_math.inc.rst:47: WARNING: toctree contains reference to nonexisting document 'domains/vm/vm/bibliography\
'
/localdisk/work/rscohn1/Projects/spec/oneapi-sp
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.