Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Commit 41b0a29

Browse files
authored
Update meeting-4-24-19.md
1 parent 0e9df42 commit 41b0a29

File tree

1 file changed

+95
-25
lines changed

1 file changed

+95
-25
lines changed

meetings/meeting-4-24-19.md

+95-25
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,171 @@
1-
WebAssembly SIMD Meeting
2-
3-
When: 4/23/2019
4-
5-
Attendees:
6-
Deepti Gandluri (DG)
7-
Peter Jensen (PJ)
8-
Petr Penzin (PP)
9-
Richard Winterton (RW)
10-
Thomas Lively (TL)
11-
Arun Purushan (AP)
12-
Marat Dukhan (MD)
13-
14-
Agenda:
15-
SIMD Versioning proposal (Thomas) https://github.com/WebAssembly/simd/issues/72
16-
C/C++ intrinsics PR at Tool-conventions repo (Rich/Tomas) https://github.com/WebAssembly/tool-conventions/pull/108
17-
SIMD Spec tests
18-
CG F2F Simd topics
19-
Future Meeting timings
1+
# WebAssembly SIMD Meeting
2+
3+
- **When:** 4/23/2019
4+
5+
## Attendees:
6+
7+
- Deepti Gandluri (DG)
8+
- Peter Jensen (PJ)
9+
- Petr Penzin (PP)
10+
- Richard Winterton (RW)
11+
- Thomas Lively (TL)
12+
- Arun Purushan (AP)
13+
- Marat Dukhan (MD)
14+
15+
## Agenda:
2016

17+
- SIMD Versioning proposal (Thomas) https://github.com/WebAssembly/simd/issues/72
18+
- C/C++ intrinsics PR at Tool-conventions repo (Rich/Tomas) https://github.com/WebAssembly/tool-conventions/pull/108
19+
- SIMD Spec tests
20+
- CG F2F Simd topics
21+
- Future Meeting timings
2122

2223

2324

24-
Details:
25-
SIMD Versioning proposal (Thomas) https://github.com/WebAssembly/simd/issues/72
25+
26+
## Details:
27+
*SIMD Versioning proposal (Thomas) https://github.com/WebAssembly/simd/issues/72*
28+
2629
TL: Versioning the proposal will be useful as there are multiple implementations, engines and toolchain. Churn on instructions are implemented/ buggy/ proposed etc. Early adopters expressed concern about mismatch in expectations. Toolchain and v8 has some ops missing. Tag versions of the proposal. Simple and lightweight. Examples: V1 v2 v3 etc saying latest version of llv matches v2 of spec through a tag. Latest version of v8 supports v2 etc. Feedback that proposal v8 centric. Can be changed. Looking for more feedback.
30+
2731
AP: There seems to be some precedence to this from JS. We need to consider that. Agree that implementer references needs to be taken out. Timing to start was an open. Suggest we start when the implementations catch up rather than dropping instr.
32+
2833
DG: Replace v8 with any implementor. Disagree to wait for implementor to catch up. Sooner is better. Ran into Dan Ernberg and had precedence to try to version based on spec version. Unclear on the issues, ccd him and we should await feedback.
34+
2935
TL: Waiting is nice but, Sooner is better. V8 might not be implementing i64/f64 soon. Waiting for v8 to catch up is saying we are not going to version. Wouldnt Make sense to chakra and v8 to point to the same version as they dont implement the same. May be versions dont need to be linear order. Create a tag in the repo <v8-1, v8-2> etc..
36+
3037
DG: May be it makes sense to stay away from implementer based tag. Implementor agnostic tag will be useful. 64x2 is yet to see test cases or use cases asking for it. Not sure if its a useful subset or not.
38+
3139
TL: Users might want to match toolchain-engine-doc. If different engine implement different subset, useful to have separate tags for separate subsets.
40+
3241
DG: Agree that we need different tags. Spec needs to be implementation agnostic. Users should be able to look up this info in a document may beThe details can reside in other documentation. Doesn't necessarily need to happen in the spec. v8/chakra release notes with ref to tags is better. Spec shouldnt have any implementation ref.
42+
3343
TL: Maybe we don't need to modify the spec at all, just have documentation capturing the support info.
44+
3445
DG: As long as we agree on what doc looks like, we dont need to version the spec. Versioning makes sense witht the branches. We need to have more conversations. For the time being we can have a document.
46+
3547
RW: As long as there is a mapping from implementers to the spec, that would do. As long as we can have a mapping to what's implemented, its useful. Ie. color scheme/venn diagram with versioning somewhere in the document.
48+
3649
TL: what if we check in a markdown file big table updated by all implementers. Ultra lightweight.
3750
<Everyone agrees>
51+
3852
AR: Tomas will create a PR with a V8 column. Arun/Petr update chakra column.
53+
3954
DG: has chakra implementation been tested?
55+
4056
PP: Tested against its own tests with wabt . Toolchain some experiments on going.
57+
4158
DG: Tomas has exhaustive tests on simd. May be its a good idea to run them in chakra.
59+
4260
RW: Its in the emscripten tests already. May be we can add intrinsics too.
61+
4362
TL : New Emscripten PR to add test mode for simd. Able to run entire emscriten test suite with simd enabled once it lands. I will cc some of you on that PR.
63+
4464
AP: OK, we will pick it up and test against chakra.
4565

4666

47-
C/C++ intrinsics PR at Tool-conventions repo (Rich/Tomas) https://github.com/WebAssembly/tool-conventions/pull/108
67+
*C/C++ intrinsics PR at Tool-conventions repo (Rich/Tomas) https://github.com/WebAssembly/tool-conventions/pull/108*
68+
4869
RW: Pretty much covered. Belongs in emscripten at some point. Probably could move over to clang. Open question is where does it reside long term, in Clang or Emscripten? We can move over to clang in some point in future.
70+
4971
TL: Are there any wasm pre existing headers in Clang?
72+
5073
PP: No, not yet. This is simd128, wasm will have more ops. Also, there are WASM memory operations that would need intrinsics at some point. Should those be in a separate header?
51-
TL: We have compiler builtins for that stuff. No one has made any intrinsics TMK. That could go in there too. We might want separate header for them. Makes sense to keep simd intrinsics separate from memory intrinsics.
74+
75+
TL: We have compiler builtins for that stuff. No one has made any intrinsics TMK. That could go in there too. We might want separate
76+
header for them. Makes sense to keep simd intrinsics separate from memory intrinsics.
77+
5278
PP: Another difference bw emscripten and clang is clang doesn’t include tests for the intrinsics, only for builtins.
79+
5380
TL: Clang tests are compiled but not executed, they only check that code is produced. That is why I want the libs folder. directory with headers. We might need to have them in both places.
81+
5482
AP: Why is this needed to be duplicated?
83+
5584
TL: Not sure emscripten going to use clang headers, it will use its own libc.
85+
5686
AP: Why emscripten is not using it?
87+
5788
RW: If you use emscripten sdk you not going to get all clang headers with it.
89+
5890
TL: Switching to llvm backend in emscripten, once we have headers in clang, there will be an incentive to use clang headers. We might need to duplicate for now.
91+
5992
PP: What is the difference between clang in emscripten. Fastcom clang and actual.
93+
6094
TL: Fastcom is not based on trunk llvm, old llvm. And it has fastcomp backend compiles directly to llvm ir to js. It doesn't know anything about wasm. It transfers to asm js and then wasm. Working on deprecating that.
95+
6196
RW: To get simd support in Emscripten we have to pull down simd branch Tomas created.
97+
6298
TL: SIMD doesn't work with fastcomp. It works with the new backend.
99+
63100
TL: WASM simd intrinsics are not merged to upstream yet. If you just use emscripten from emsdk, it uses fastcomp and does not support simd at all.
64101

65-
SIMD Spec tests
102+
*SIMD Spec tests*
103+
66104
AP: We discussed internally and we might be able to help with simd spec tests
105+
67106
DG: Any help will be appreciated. Google already working on toolchain and implementation and this will help to move the proposal forward quicker. Do you have a timeline on when it can be started.
107+
68108
AP: Need to get back to you on this. They are already doing work on core spec and RW’s intrinsics. Need to sync and find out.
109+
69110
DG: Sounds good. Really encouraging to see you might be able to help. After the in person meeting, we will start looking into some of these. There is enough work, we can work together. We have ref interpreter work and spec tests. We can collaborate.
70-
CG F2F Simd topics
111+
112+
*CG F2F Simd topics*
113+
71114
AP: Any simd topics to discuss at the F2F forum. Can we push for stage 2? Anything else that we need to be prepared with.
115+
72116
DG: we are trying to get some FP numbers. So that we will include those in the spec tests. Confident that it is possible. Add agenda to simd proposal as an update to the simd proposal. Goal is pushing to Stage2. Who is attending?
117+
73118
AP: not confirmed yet.
119+
74120
PJ: Not going?
121+
75122
DG: I should be going. Sharing simd stuff there.
123+
76124
TL: will attend.
125+
77126
RW: Not attending.
127+
78128
PP: FP numbers ? We will think about getting some numbers.
129+
79130
DG: It was the feedback that we got from the community. We had integer data from Webp is a codec team at google.
131+
80132
AR: We may be able to look into some chakra data as well.
133+
81134
PP: Will consider it.
135+
82136
MD: Lack of FMA in simd proposal is a concern for ML applications. It can hit pref upto 2x
137+
83138
DG: WebP team has the same feedback. We are considering to add it. If you can put together a pr with results we will be happy to review that.
139+
84140
PP: We can prototype it.
141+
85142
MD: Did my basic experiemnts and there is significant speedup.
143+
86144
RW: I want to add sign extend and load extend.
145+
87146
DG: Please create a PR
147+
88148
AR: Rich to create a PR
149+
89150
MD: There is not a simple way to sore parts of a simd reg. Ie store only in 64bit simd, in wasm it needs to be done in a roundabout way.
151+
90152
RW: you want to store partial registers right?
153+
91154
MD: yes. Currently it can be done only through extract.
155+
92156
DG: Do you know how useful it is and how much overhead is causing?
157+
93158
MD: We use it often, hard to quantify impact. Prefer to have these explicitly.
159+
94160
PJ: SImdjs had load1, load2 load3 etc for partial load and store.
161+
95162
DG: Yes.
163+
96164
RW: Dont know the history of why we only wanted 128. Else we can just propose it. We seems to have a new list to add
165+
97166
DG: FMA already has an issue, load extension RW to follow up. We cna have a new issue for partial stores and loads.
98167
Future Meeting timings
168+
99169
DG: Didnt hear from people in EU time zone with interest. Current slot seems to work for now. Let's continue until this is needed.
100170

101171
Open:

0 commit comments

Comments
 (0)