Skip to content

Commit 0f4c607

Browse files
committed
Merge commit '4a8277bf8b83d00f571d78c5fb885c107953e0c5'
Signed-off-by: Anatoly Myachev <[email protected]>
2 parents 88f4435 + 4a8277b commit 0f4c607

File tree

18 files changed

+773
-188
lines changed

18 files changed

+773
-188
lines changed

docs/meetups/for_moderators/README.md

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
### How to run a Triton Community Meetup
2+
3+
Contributors: Bill Yoshimi, Areg Melikadamyan, Whitney Tsang, Ksharma Pawar
4+
5+
Last updated: July 3, 2025
6+
7+
Community meetups give the on-line community a chance to interact with each other and the Triton developers in a more face-to-face format vs slack chats. Example topics covered during community meetups include:
8+
* Developers presenting updates on features they’re working on.
9+
* Developers asking community for feedback on new initiatives
10+
* Questions from community for developers
11+
* Questions about Triton strategy/direction.
12+
13+
14+
## Some logistics
15+
16+
Community meetups occur once 8 weeks (usually during the first 1-2 weeks of a month).
17+
Reminders are sent out 2 weeks ahead of time
18+
19+
Only companies that paid for corp Microsoft Teams access can create webinars. Three folks who have done this (or have access in the past are):
20+
* Areg Melikadamyan
21+
* Whitney Tsang
22+
* Ksharma Pawar
23+
* Jian Hui
24+
25+
Webinars are automatically recorded. The person with corp access can upload the video to youtube after the webinar is finished.
26+
27+
Only the person with corp access can open a webinar. Even if you’re a registered speaker or MC, you’ll see
28+
29+
<div align="center">
30+
<img src="https://private-user-images.githubusercontent.com/85795580/459649517-42acf22a-6ae3-4c0f-a585-dffc25fabc33.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTE1NTg1MzEsIm5iZiI6MTc1MTU1ODIzMSwicGF0aCI6Ii84NTc5NTU4MC80NTk2NDk1MTctNDJhY2YyMmEtNmFlMy00YzBmLWE1ODUtZGZmYzI1ZmFiYzMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA3MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNzAzVDE1NTcxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZhZWQ2NjQ3MDIxNGVkNThkMGYxZmNjMmI2Yzg5MjMyZTAxZGI5NmFiZDIwYzczMDc0N2YzOTM3MTYwMThiOWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UwzTbqMIsFw1Ex9t-5HY8A3KHzOnY6eqgqz2eJ0qTbE" alt="Microsoft Meeting waiting for meeting to start view">
31+
</div>
32+
33+
34+
before the meeting owner opens it up.
35+
36+
During the meetup, take notes.
37+
38+
Post the final notes on the Triton-lang website here: https://github.com/triton-lang/triton/tree/main/docs/meetups
39+
40+
## How to run a community meetup
41+
42+
1. Work with one of the folks above to create a Microsoft Teams webinar (occurring 6-8 weeks in the future). Template:
43+
44+
<pre>
45+
Title: “Triton Community Meetup (online)”
46+
External presenter: **“<your name>”**
47+
Co-organizer: **add organizers**
48+
Date: **Add date**
49+
Time: 10:00-11:00 PDT
50+
Duration: 1 hr
51+
Recurring meeting: link **(created by [email protected])**
52+
</pre>
53+
54+
2. If you don’t have details about the meeting (e.g. meeting ID, passcode, phone number, etc.) you can login to the meeting, click on More -> Meeting Info and get data that way.
55+
56+
<div align="center">
57+
<img src="https://private-user-images.githubusercontent.com/85795580/459649518-f9a924df-2020-4dde-b8bb-e901a9298cef.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTE1NTg1MzEsIm5iZiI6MTc1MTU1ODIzMSwicGF0aCI6Ii84NTc5NTU4MC80NTk2NDk1MTgtZjlhOTI0ZGYtMjAyMC00ZGRlLWI4YmItZTkwMWE5Mjk4Y2VmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA3MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNzAzVDE1NTcxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0YzI3OGRmMWI1NDk2NjQxOTJhMmJiNTM5ZDg4ZGZjOTk4OGM2YWRkNTk1ZTY4NjNhMjk2ZWZlZDhiZDYzZGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6bgthh7pHDV-ooMMm1WsgbbLJH39nzk-DPre6GDjZnI" alt="Microsoft Meeting info pane">
58+
</div>
59+
60+
3. Copy the invite generated from the meeting to [triton #general chat](https://app.slack.com/huddle/T01379XQ9FG/C013E22BPPC) on slack. Example text to use in slack:
61+
62+
<pre>
63+
The next community meetup will be on <date> from 10am-11am PST. The meeting link is below. If anyone has agenda items to add for the meetup please reach out to me.
64+
65+
Thanks,
66+
**<your name>**
67+
----
68+
Microsoft Teams Need help?
69+
Join the meeting now <- **change this**
70+
Meeting ID: 247 993 489 59 <- **change this**
71+
Passcode: Dg8TLJ <- **change this**
72+
Dial in by phone
73+
+1 323-849-4874,,637393478# United States, Los Angeles <- **change this**
74+
Find a local number
75+
Phone conference ID: 637 393 478# <- **change this**
76+
</pre>
77+
78+
4. Post the same invite to the [#triton channel on Discord GPU_MODE](https://discord.com/channels/1189498204333543425/1189607595451895918). You will need to join GPU_MODE to post to it.
79+
80+
5. 1-2 Days before the meeting. Verify that someone with corp Microsoft Teams access will open the meeting up for you.
81+
6. Day before meeting, post reminders to slack and discord (reply to your original message):
82+
Reminder, this month's community meetup is tomorrow at 10am PST.
83+
84+
<pre>
85+
Agenda:
86+
Topic #1 <who>
87+
Topic #2 <who>
88+
</pre>
89+
90+
7. Day of meeting, login a little early and verify everything is working as expected.
91+
92+
8. During the meeting, keep an eye on the comments section. Some folks might post questions for the speaker there and/or issues they're having with Teams.
93+
94+
9. After the meeting has finished, work with the person with corp Microsoft Teams access to upload the recorded video to youtube. Post the youtube link in [triton #general chat](https://app.slack.com/huddle/T01379XQ9FG/C013E22BPPC).
95+
96+
If this is your first time using Microsoft Teams, work with the meeting creator to test out the UI (e.g. logging in, verifying your camera, audio work, verifying you can present your screen if using that functionality, play around with hand raising, play around with people/attendees/muting others, log off and log back in again.)
97+
98+
## How to upload videos to Youtube
99+
100+
1. Register to use youtube. That is, the top right symbol when you go to youtube.com should be your login.
101+
102+
<div align="center">
103+
<img src="https://private-user-images.githubusercontent.com/85795580/459649516-4bea87d7-1c6b-4331-92c1-e480b2f3d295.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTE1NTg1MzEsIm5iZiI6MTc1MTU1ODIzMSwicGF0aCI6Ii84NTc5NTU4MC80NTk2NDk1MTYtNGJlYTg3ZDctMWM2Yi00MzMxLTkyYzEtZTQ4MGIyZjNkMjk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA3MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNzAzVDE1NTcxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVjNWUxMTIzNTA4MGQxMmRkMjQ1NWQzMzFhMTIwNmVhZDNhMmJlMWQwMDQwYmUyNmQ4YTkwNTUxMTI3ZWJjNjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RUIK1GbqVtC8sfu_2ntb8to9FFQv7MfHrYbvNCfLCh8" alt="Youtube Login">
104+
</div>
105+
106+
2. Click on https://www.youtube.com/feed/you
107+
3. Click on “+ Create” on top next to search box.
108+
4. Select the video you want to upload
109+
5. For Title use something like “Triton Community Meetup May 2025”
110+
6. No, it’s not made for kids
111+
7. No video elements
112+
8. Save or publish: “public”
113+
9. Make a copy of the video link so you can post it on slack and discord. (like: https://youtu.be/kJjBurkPn_8)
114+
115+
116+
## Past community meetups
117+
118+
| Date | Meet setup | Agenda & who | Recording |
119+
| ---- | ---------- | ------------ | --------- |
120+
| 2025-05-01 | [Link](https://tinyurl.com/mr397f6x) | Topic: what are plans for existing block pointer programming model? (Context: Intel GPU backend relies heavily on it and will need time to fully move to tensor descriptor programming model.) - Jianhui Li, Intel <br/> Topic: infrastructure for Triton performance tests - Sayce, Google<br/>Topic: what talks/tutorials/open discussions would you like to see at the 2025 Triton Developers’ Summit? How can we help? - Adnan Aziz, Meta <br/> Topic: what are plans for existing block pointer programming model? (Context: Intel GPU backend relies heavily on it and will need time to fully move to tensor descriptor programming model.) - Jianhui Li, Intel<br/>Topic: infrastructure for Triton performance tests - Sayce, Google<br/>Topic: what talks/tutorials/open discussions would you like to see at the 2025 Triton Developers’ Summit? How can we help? - Adnan Aziz, Meta </pre> | https://www.youtube.com/watch?v=W16BrXc5BYE |
121+
| 2025-07-09 |[Link](https://tinyurl.com/mus5wyax) | Topic: Gluon update - Jeff Niu, OpenAI <br/> Topic: Interest and requirements for a nightly performance regression suite - Simon Waters, kernelize.ai<br/>Triton developer's summit update - Ofer Dekel, Microsoft | |

include/triton/Dialect/Triton/IR/TritonOps.td

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,16 @@ def TT_SplatOp : TT_Op<"splat", [Pure,
432432
let hasFolder = 1;
433433
}
434434

435+
def TT_UnsplatOp : TT_Op<"unsplat", [Pure,
436+
DeclareOpInterfaceMethods<InferTypeOpInterface>]> {
437+
let summary = "convert a tensor with a single element to a scalar";
438+
let arguments = (ins TT_Tensor:$src);
439+
let results = (outs TT_Type:$result);
440+
441+
let assemblyFormat = "$src attr-dict `:` type($src)";
442+
let hasVerifier = 1;
443+
}
444+
435445
def TT_ExpandDimsOp : TT_Op<"expand_dims", [Pure,
436446
DeclareOpInterfaceMethods<InferTypeOpInterface>,
437447
SameOperandsAndResultElementType]> {

lib/Conversion/TritonGPUToLLVM/ViewOpToLLVM.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,18 @@ struct SplatOpConversion : public ConvertOpToLLVMPattern<triton::SplatOp> {
6060
return success();
6161
}
6262
};
63+
64+
struct UnsplatOpConversion : public ConvertOpToLLVMPattern<triton::UnsplatOp> {
65+
using ConvertOpToLLVMPattern<triton::UnsplatOp>::ConvertOpToLLVMPattern;
66+
LogicalResult matchAndRewrite(triton::UnsplatOp op, OpAdaptor adaptor,
67+
ConversionPatternRewriter &rewriter) const {
68+
auto loc = op->getLoc();
69+
auto scrVals = unpackLLElements(loc, adaptor.getSrc(), rewriter);
70+
rewriter.replaceOp(op, scrVals[0]);
71+
return success();
72+
}
73+
};
74+
6375
// This pattern helps to convert arith::ConstantOp(with SplatElementsAttr),
6476
// the logic is the same as triton::SplatOp, so the underlying implementation
6577
// is reused.
@@ -550,6 +562,7 @@ void mlir::triton::populateViewOpToLLVMPatterns(
550562
patterns.add<ReshapeOpConversion>(typeConverter, benefit);
551563
patterns.add<ExpandDimsOpConversion>(typeConverter, benefit);
552564
patterns.add<SplatOpConversion>(typeConverter, benefit);
565+
patterns.add<UnsplatOpConversion>(typeConverter, benefit);
553566
patterns.add<ArithConstantSplatOpConversion>(typeConverter, benefit);
554567
patterns.add<ArithConstantArrayOpConversion>(typeConverter, benefit);
555568
patterns.add<CatOpConversion>(typeConverter, benefit);

lib/Dialect/Triton/IR/Ops.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,24 @@ OpFoldResult SplatOp::fold(FoldAdaptor adaptor) {
606606
return ret;
607607
}
608608

609+
//-- UnsplatOp --
610+
LogicalResult UnsplatOp::verify() {
611+
auto srcShape = getSrc().getType().getShape();
612+
if (product(srcShape) != 1) {
613+
return emitError("source tensor must have exactly one element");
614+
}
615+
return success();
616+
}
617+
618+
LogicalResult UnsplatOp::inferReturnTypes(
619+
MLIRContext *context, std::optional<Location> location, ValueRange operands,
620+
DictionaryAttr attributes, OpaqueProperties properties, RegionRange regions,
621+
SmallVectorImpl<Type> &inferredReturnTypes) {
622+
auto dstTy = cast<RankedTensorType>(operands[0].getType()).getElementType();
623+
inferredReturnTypes.push_back(dstTy);
624+
return success();
625+
}
626+
609627
//-- ExpandDimsOp --
610628
LogicalResult ExpandDimsOp::inferReturnTypes(
611629
MLIRContext *context, std::optional<Location> loc, ValueRange operands,

0 commit comments

Comments
 (0)