Giter Site home page Giter Site logo

uxlfoundation / oneapi-spec Goto Github PK

View Code? Open in Web Editor NEW
171.0 26.0 101.0 25.51 MB

oneAPI Specification source files

Home Page: https://spec.oneapi.com

License: Other

Shell 0.01% CSS 0.04% JavaScript 0.09% HTML 0.07% Python 82.07% C++ 17.19% C 0.42% Makefile 0.05% Batchfile 0.05%
accelerator parallel-programming linear-algebra video-processing analytics sycl deep-learning oneapi

oneapi-spec's People

Contributors

aepanchi avatar akukanov avatar akwrobel avatar alexey-katranov avatar amgrigoriev avatar andrewtbarker avatar andreynv avatar anton-potapov avatar baeseung-intel avatar dmnemshi avatar gajanan-choudhary avatar hdelassus avatar igorbelyakovintel avatar kboyarinov avatar mchernov-intel avatar mgouicem avatar michael-smirnov avatar mkrainiuk avatar mmeterel avatar mshiryaev avatar napetrov avatar no-ponomarev avatar rachelertl avatar rlnx avatar rscohn2 avatar sknepper avatar spencerpatty avatar tletnes avatar vepifanov avatar wuxun-zhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oneapi-spec's Issues

DPL: dpstd::begin

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.

Host callback

Could DPC++ support adding host back functions to an ordered queue for device?

Local memory

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?

DPL: Description of 'Specific API'

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.

MKL: Malformed tables

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

MKL: remove :name: with GUID

The :name: with GUID are introduced by conversion from DITA, but are not used
.. container:: section
:name: GUID-753F13BA-A3C7-4F24-90F1-14B6279BD95C

DPL: control over sequencing by accessing buffers

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 footer is broken

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.

MKL: spec refers to product manual

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

Subgroup size for subgroup primitives

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?

MKL: roadmap milestones

Populate roadmap.rst with some milestones. For example 1st drop of API descriptions in RST. Final drop.

Option to be less OOP in DPC++

Request to provide access to thread id, group id, memory fence, barrier functions, etc. without using an nd_item like object

VPL: Clear doxygen warnings

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

Global variables

Could DPC++ support global variables in device memory and USM, and a memcpy function for copying data from host to the global variable?

MKL: markup for classes is not correct

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

DPL: note SYCL C++ limitations

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.

DNN: sphinx warnings

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

DPL: USM & PSTL?

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

MKL: add exclude to mkl conf.py

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.