Here is a draft of R8. There is not much difference between it and R7 at the moment. I'm happy to address it tonight and remark on what our plans are for this year.

Cheers,
G

On Wed, 8 Mar 2023 at 22:17, Guy Davidson <guy.cpp.wg21@gmail.com> wrote:
I would be very keen to hear your ideas about how our proposals may interoperate. While abstraction levels are important, interoperability between those levels is also important, and is something we identified early on in the linear algebra story.

See you tomorrow.

Cheers,
G

On Wed, 8 Mar 2023 at 16:42, Dounia Khaldi via SG19 <sg19@lists.isocpp.org> wrote:
I was planning on providing a quick update on addressing the feedback I got from our last call about matrices. But if Guy wants to present his matrix engine proposal, I will be happy to postpone to the next instance.

This is a reminder for the people who were not present/forgot about the informal proposal I presented last year:

I presented a low level matrix proposal at the SG19 study group. 

This work started as an experimental extension to SYCL (https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_oneapi_matrix.asciidoc) but since it is mainly a C++ proposal, we think there is a value to add it to C++ as well.

I am aware of different parallel proposals in C++ related to matrices (mdspan, mdarray, BLAS and your matrix proposal). My hope was to merge/collaborate with the existing proposals if there is really intersection. But the feedback was that the level of abstraction is different from these proposals so this matrix proposal should be treated differently. Please note that this is a very early proposal compared to the existing ones. 

Minutes/feedback from SG19 SG that I was planning on addressing this/next time:
  • The proposal presented here is similar in the level of abstraction to the simd proposal in  https://en.cppreference.com/w/cpp/experimental/simd/simd and http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0214r9.pdf in the sense that it proposes to partition the application data into small chunks that fit into physical registers and focuses on performance and low level programming.
  • The example code shows only efficient mapping on AMX in the CPU context. How would this efficiently map to Nvidia GPUs tensorcores?
  • A query API is needed to query the different efficiently supported sizes and types on the hardware. These sizes and types are implementation-defined. If an implementation finds a value in emulating sizes or types that are not natively supported by the matrix hardware, the implementation is free to emulate them but these will be communicated to the user via this query API.
  • Do we really need the dynamic variant of the sizes? AMX supports it but is this a sufficient reason to add it to the spec? Having only constant sizes (included with the type) would simplify the API and the query interface.
  • Besides matrix_load, matrix_store and matrix_mad, what are the operations (mainly element wise operations and others) to be added for completeness? There are three options that we can consider one or a combination of them: 
    • have indexing and looping over the scalars as the general approach to implement any kind of operation 
    • Since the matrix hardware, at least the main ones here, does not support these operations natively, provide an operation to convert (flatten) the matrix into a vector to be able to apply all these vector operations without introducing extra functions.
    • Select a set of operations that are supported in modern hardware (like a convolution function) and add these specific ones as additional functions that operate on the matrix type.
    • This proposal consists of a low level matrix and should be separated from the existing matrix-related proposals like mdspan, mdarray, BLAS and matrix engines. The end users in the latter proposals don't need to think about partitioning the data or what the hardware efficiently supports.


On Wed, Mar 8, 2023 at 9:40 AM Michael Wong via SG19 <sg19@lists.isocpp.org> wrote:
Guy, Thank you. I think that Dounia of Intel may also have an update. Just confirming. Cheers.

On Wed, Mar 8, 2023 at 2:20 AM Guy Davidson via SG19 <sg19@lists.isocpp.org> wrote:
I will be available to discuss matrix. There is a draft R8 to share which I will post.

Cheers,
G

On Tue, 7 Mar 2023 at 20:34, Phil Ratzloff via SG19 <sg19@lists.isocpp.org> wrote:

There won’t be anything to share for graph.

 

 

From: SG19 <sg19-bounces@lists.isocpp.org> On Behalf Of Michael Wong via SG19
Sent: Tuesday, March 07, 2023 11:19 AM
To: sg19@lists.isocpp.org
Cc: Michael Wong <fraggamuffin@gmail.com>
Subject: [SG19] SG19 Mar 9 call

 

EXTERNAL

Hi all, SG19 Machine Learning meeting will focus on Matrix. We still want to drive graph and stats to completion and we can have brief moments to review where they are depending on how much Matrix takes up. Are there any other suggested topics? Thank you.


Michael Wong is inviting
you to a scheduled Zoom meeting.

Topic: SG19 monthly
Time: 02:00 PM Eastern Time (US and Canada)
    Every month on the Second Thu,


Join from PC, Mac, Linux, iOS or Android:

https://iso.zoom.us/j/93084591725?pwd=K3QxZjJlcnljaE13ZWU5cTlLNkx0Zz09
    Password: 035530

Or iPhone one-tap :
    US: +13017158592,,93084591725# or +13126266799,,93084591725#
Or Telephone:
    Dial(for higher quality, dial a number based on your current location):
        US: +1 301 715 8592 or +1 312 626 6799 or +1 346 248 7799 or +1
408 638 0968 or +1 646 876 9923 or +1 669 900 6833 or +1 253 215 8782
 or 877 853 5247 (Toll Free)
    Meeting ID: 930 8459 1725
    Password: 035530
    International numbers available: 
https://iso.zoom.us/u/agewu4X97

Or Skype for Business (Lync):
    
https://iso.zoom.us/skype/93084591725

Agenda:

1. Opening and introductions

The ISO Code of conduct:
https://www.iso.org/files/live/sites/isoorg/files/store/en/PUB100397.pdf

IEC Code of Conduct:

https://www.iec.ch/basecamp/iec-code-conduct-technical-work

ISO patent policy.

https://isotc.iso.org/livelink/livelink/fetch/2000/2122/3770791/Common_Policy.htm?nodeid=6344764&vernum=-2

The WG21 Practices and Procedures and Code of Conduct:
https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures

1.1 Roll call of participants

1.2 Adopt agenda

1.3 Approve minutes from previous meeting, and approve publishing
 previously approved minutes to ISOCPP.org

1.4 Action items from previous meetings

2. Main issues (125 min)

2.1 General logistics

Meeting plan, focus on one paper per meeting but does not preclude other
paper
updates:

CPPCON minutes:
https://wiki.edg.com/bin/view/Wg21virtual2022-07/SG14


    Nov 10, 2022 02:00 PM ET: Cancelled due to Kona F2F
    Dec 8, 2022 02:00 PM ET: Graph
    Jan 12, 2023 02:00 PM ET: Stats
    Feb 9, 2023 02:00 PM ET: F2F cancelled
    Mar 9, 2023 02:00 PM ET: Matrix


ISO meeting status

future C++ Std meetings

2.2 Paper reviews

2.2.1: ML topics

2.2.1.1 Graph Proposal Phil Ratsloff et al

Latest paper:

Here’s a link to the paper (different than the previous paper reviewed).
There are some additional updates I’m planning on making before the meeting.

https://docs.google.com/document/d/1OpH-xxRri7tJTtJJIZTYmSHkkrZJkdBwm9zJ7LqolfQ/edit?usp=sharing




P1709R3:
https://docs.google.com/document/d/1kLHhbSTX7j0tPeTYECQFSNx3R35Mu3xO5_dyYdRy4dM/edit?usp=sharing

https://docs.google.com/document/d/1QkfDzGyfNQKs86y053M0YHOLP6frzhTJqzg1Ug_vkkE/edit?usp=sharing

<
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html>

<
https://docs.google.com/document/d/175wIm8o4BNGti0WLq8U6uZORegKVjmnpfc-_E8PoGS0/edit?ts=5fff27cd#heading=h.9ogkehmdmtel
*>*

Array copy semantics:
array copy-semantics paper P1997 "Relaxing Restrictions on Arrays",
https://wg21.link/p1997

Stats feedback:

P2376R0
<
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2376r0.pdf>
Comments
on Simple Statistical Functions (p1708r4): Contracts, Exceptions and
Special cases Johan Lundberg

2.2.1.2 Reinforcement Learning Larry Lewis Jorge Silva

Reinforcement Learning proposal:

2.2.1.3 Differential Calculus:

https://docs.google.com/document/d/175wIm8o4BNGti0WLq8U6uZORegKVjmnpfc-_E8PoGS0/edit?ts=5fff27cd#heading=h.9ogkehmdmtel

2.2.1.4: Stats paper

P2681R0
<
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2681r0.pdf> More
Stats Functions Richard Dosselmann, Michael Wong
Current github

https://github.com/cplusplus/papers/issues/475

https://github.com/cplusplus/papers/issues/979

Stats review Richard Dosselman et al

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1708r4.pdf

Feedback from Johan Lundberg and Oleksandr Korval

https://isocpp.org/files/papers/D2376R0.pdf

P1708R3: Math proposal for Machine Learning: 3rd review

PXXXX: combinatorics: 1st Review

*> std.org/jtc1/sc22/wg21/docs/papers/2020/p1708r2
<
http://std.org/jtc1/sc22/wg21/docs/papers/2020/p1708r2>*
*> above is the stats paper that was reviewed in Prague*
*> 
http://wiki.edg.com/bin/view/Wg21prague/P1708R2SG19
<
http://wiki.edg.com/bin/view/Wg21prague/P1708R2SG19>*
*>*
*> Review Jolanta Polish feedback.*
*> 
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html
<
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html>*


2.2.1.4: Matrix paper

2.2.3 any other proposal for reviews?

2.3 Other Papers and proposals

P1416R1: SG19 - Linear Algebra for Data Science and Machine Learning
https://docs.google.com/document/d/1IKUNiUhBgRURW-UkspK7fAAyIhfXuMxjk7xKikK4Yp8/edit#heading=h.tj9hitg7dbtr

P1415: Machine Learning Layered list
https://docs.google.com/document/d/1elNFdIXWoetbxjO1OKol_Wj8fyi4Z4hogfj5tLVSj64/edit#heading=h.tj9hitg7dbtr

2.2.2 SG14 Linear Algebra progress:
Different layers of proposal
https://docs.google.com/document/d/1poXfr7mUPovJC9ZQ5SDVM_1Nb6oYAXlK_d0ljdUAtSQ/edit

2.5 Future F2F meetings:

2.6 future C++ Standard meetings:
https://isocpp.org/std/meetings-and-participation/upcoming-meetings

None

3. Any other business

New reflector

http://lists.isocpp.org/mailman/listinfo.cgi/sg19

Old Reflector
https://groups.google.com/a/isocpp.org/forum/#!newtopic/sg19
<
https://groups.google.com/a/isocpp.org/forum/?fromgroups=#!forum/sg14>

Code and proposal Staging area

4. Review

4.1 Review and approve resolutions and issues [e.g., changes to SG's
working draft]

4.2 Review action items (5 min)

5. Closing process

5.1 Establish next agenda


5.2 Future meeting




   Jan 2, 2022 02:00 PM ET: Stats
    Feb 9, 2022 02:00 PM ET: F2F Cancelled
    mar 9, 2022 02:00 PM ET: Matrix

--
SG19 mailing list
SG19@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg19
--
SG19 mailing list
SG19@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg19
--
SG19 mailing list
SG19@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg19
--
SG19 mailing list
SG19@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg19