mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-22 22:25:10 +08:00
Compare commits
1844 Commits
mlazos/sta
...
v2.5.1
Author | SHA1 | Date | |
---|---|---|---|
a8d6afb511 | |||
f31b8bbc5b | |||
848e7ac42a | |||
885c823759 | |||
8c3ed97baa | |||
70cf2bbc0b | |||
cde6b382ff | |||
4076a738b0 | |||
a97c15174b | |||
32f585d934 | |||
417a0763a7 | |||
119e7344d9 | |||
783a6a424c | |||
5375201dff | |||
1de132ec9e | |||
0b1b609ed7 | |||
0b45af9c10 | |||
1a0b166ba2 | |||
3a541ef8c2 | |||
f8c4c252ca | |||
8af31b2e49 | |||
8a71edcca5 | |||
058d3de7b9 | |||
17d25897b2 | |||
70298e91f9 | |||
69ed7c7093 | |||
d80f521ee2 | |||
57717c8768 | |||
550ed97a89 | |||
051df20ac2 | |||
bc421d456e | |||
aa574ab7e3 | |||
24bd87d5dd | |||
6101aafa34 | |||
396413f05c | |||
c25781c5d2 | |||
ecd330669e | |||
1715708183 | |||
2e2c00f74c | |||
cbe476a5a7 | |||
4b030d47b1 | |||
9b80ddecd6 | |||
6e86793f75 | |||
7c550fea95 | |||
7a00785c23 | |||
4e6a99e5f3 | |||
dd73223b90 | |||
c5e5254a79 | |||
ffed7b71e8 | |||
becdf8ae4f | |||
fb276d2652 | |||
b7de7932fd | |||
1954439802 | |||
3920988456 | |||
1db2a6562c | |||
4b5bf41476 | |||
a889c85498 | |||
813e06461c | |||
9887030485 | |||
9e315fef22 | |||
6b14e6cfdd | |||
828d686e1c | |||
612fc7c447 | |||
cea562006e | |||
ba27502501 | |||
4a3dabd67f | |||
e130696270 | |||
b7eb7256fb | |||
c1ae78be92 | |||
defb515306 | |||
31c4e0d37d | |||
53290ca00b | |||
16f5155992 | |||
37144be03d | |||
3bdc54ed18 | |||
2196f32475 | |||
cfc227ad43 | |||
20cab91a12 | |||
a6fae2e811 | |||
042f2f7746 | |||
fd494dd426 | |||
8334cb2fb9 | |||
e72ed4717e | |||
3bebc09be9 | |||
a2db22e6bb | |||
eac5e12548 | |||
18479c5f70 | |||
f7c0c06692 | |||
b53d97c7be | |||
6c1da66407 | |||
d7c97e7245 | |||
be9f4ffe88 | |||
692faa9bc6 | |||
32f3af72b7 | |||
ebab5c85c4 | |||
3d734d837b | |||
c92227c41a | |||
e6a0221fc6 | |||
a6b9d444fb | |||
d42b0c8f22 | |||
941d094dd1 | |||
b1a934741e | |||
0c661f3e1a | |||
2c7e314803 | |||
ead4407f57 | |||
2f5b40c099 | |||
993b5647ab | |||
2ab26806f1 | |||
b1612569f6 | |||
dc0e818738 | |||
06e414d7fe | |||
a681260caf | |||
95e976a63f | |||
306ac44eaa | |||
a7643baceb | |||
a4030e37be | |||
22e1fb6faa | |||
2a4890e315 | |||
3ce433aef2 | |||
7f2d20e687 | |||
32fd29c1ea | |||
5eebd9315a | |||
a15aabc975 | |||
b143426db3 | |||
13ba0a2e5c | |||
8520ce5f78 | |||
196748d491 | |||
177e4f4218 | |||
3988b3468b | |||
04118d8617 | |||
24482e5c68 | |||
c0ec599f27 | |||
7074de43c0 | |||
771dcce11d | |||
de74aafff4 | |||
ad29a2c0dc | |||
3a9e33dca8 | |||
a086882d72 | |||
84ae6b7d6b | |||
60a097a071 | |||
13bae39e22 | |||
4ef6c05f65 | |||
d6b9bd3e60 | |||
d0591f4658 | |||
b5dea061c8 | |||
041960a1ce | |||
67c7924ea1 | |||
217ba7b2ab | |||
758d515d98 | |||
60d98b4cfb | |||
590a3e9f8a | |||
764ee6e3f9 | |||
67f98a99a4 | |||
e020a8755a | |||
7ffb3b201c | |||
f946bf88c4 | |||
66da3b3b2a | |||
41e653456e | |||
e40a0a9359 | |||
c05a7adb36 | |||
5f57be7571 | |||
29d72c1100 | |||
3b1a334c0f | |||
07689a38bf | |||
06a7dc21c1 | |||
d9a18173fa | |||
d8543e3162 | |||
ad01fc194d | |||
e162414963 | |||
9e5a797771 | |||
b46a1b9e2d | |||
9688014820 | |||
8f6e73f068 | |||
1e57ef08fa | |||
614b86d602 | |||
0b96dfb736 | |||
62b221d5cc | |||
66dd4577b1 | |||
cc28634172 | |||
c83cdf068b | |||
28ccfba248 | |||
b2386bdca1 | |||
bdfc8d9f96 | |||
70779dded8 | |||
ea231300d1 | |||
8f66995459 | |||
144fde4fd2 | |||
43f4947d44 | |||
65e1c34061 | |||
830247c355 | |||
4262755b5a | |||
3825607144 | |||
3c8f71ff93 | |||
fc890b55b5 | |||
058a69d91a | |||
6c5920d515 | |||
116fd474da | |||
a5d70cf545 | |||
7fe819d917 | |||
f63571060c | |||
38fead8f7c | |||
24a223c49d | |||
e4920a1364 | |||
bc5ecf83d7 | |||
e55c0f59e5 | |||
a4cf9653ee | |||
9c0b03020b | |||
034717a029 | |||
9c38b00999 | |||
8efe547046 | |||
82d00acfee | |||
098431a29d | |||
be660ea2d3 | |||
52c7c89ea4 | |||
1efd341d15 | |||
a096f2899d | |||
dbeb8a1691 | |||
b1f72e2984 | |||
bb3c2408f4 | |||
2c99f17a32 | |||
0043dcd79e | |||
2e2fb668fa | |||
9d24f945ba | |||
ecbd715363 | |||
58f2477a26 | |||
43dcb4bb61 | |||
50d1e37079 | |||
b99ef1a02e | |||
8a5c8e5db9 | |||
c7328dff7f | |||
749dc6ceda | |||
eaeae0ac95 | |||
5a0e7a408f | |||
81a8624296 | |||
731fd3172a | |||
9d705605dd | |||
05feb6e4ed | |||
7b280c31ba | |||
f2a7228aed | |||
8fb1281db9 | |||
a7a53b796b | |||
30b98940b8 | |||
724faac260 | |||
04e11c7eed | |||
a3e0d4bf07 | |||
27d86f93fe | |||
32f45f01a9 | |||
4a661e089a | |||
105ac2418c | |||
560f449d8f | |||
956da79bda | |||
977a909250 | |||
b3ef0c99f5 | |||
43c9b4e0e6 | |||
00a8666708 | |||
4f70b3cfae | |||
359077fa43 | |||
9810ce9ca7 | |||
804852c1f9 | |||
13a4a0c60d | |||
87842cc658 | |||
d9ae92cd6e | |||
ed06772e35 | |||
fb1c580892 | |||
2276940f8c | |||
4e6df83d19 | |||
a8611da86f | |||
09a339fc06 | |||
741d52c69f | |||
dd7cd182ab | |||
eb0fd17bc4 | |||
c88c19c6de | |||
873abfc18e | |||
d7b57c4d63 | |||
0d193a0adf | |||
193c547461 | |||
2ddf3ed707 | |||
cff1158200 | |||
7858045491 | |||
8759ed2ac5 | |||
fc07e6bf56 | |||
c8ab9b06a2 | |||
195ac85fb6 | |||
60dfe1b35e | |||
8bfd4916d6 | |||
67208f08bd | |||
6c5669903f | |||
a178a053ad | |||
46cb2af7d8 | |||
5690f003a6 | |||
dcf05fcb14 | |||
a8467c17c3 | |||
80a6d60829 | |||
c2ff9fe042 | |||
eec8fa038e | |||
679b8fe426 | |||
1dfb105239 | |||
9f00317997 | |||
9809080b9e | |||
6448d351db | |||
2c9b4d2052 | |||
6b05aafc57 | |||
ffd1e214df | |||
c818ecd169 | |||
9e6f4f3f77 | |||
367a78495f | |||
362ecd9817 | |||
7600e9b36f | |||
982e27e532 | |||
ae3aa8ff73 | |||
ea89f01281 | |||
175485097a | |||
15c25c4580 | |||
4ebf6b04a8 | |||
e000cf0ad9 | |||
45743019cf | |||
9ffcca7060 | |||
f05b716d6d | |||
469429b959 | |||
c044deb9ce | |||
2fd36086bc | |||
85fa019697 | |||
14c8ef5198 | |||
c40e622966 | |||
272f3b9fe1 | |||
e7731b3f8a | |||
71383dd3da | |||
758d787901 | |||
6c3767452d | |||
2e0b114c06 | |||
7804c089c6 | |||
1b9f51bd88 | |||
27677ead7c | |||
a258844a32 | |||
f927bcb934 | |||
6eed63c8b9 | |||
33ba952e31 | |||
2a49296d75 | |||
2443507acc | |||
39935e0fde | |||
23a2161ad1 | |||
9856bc50a2 | |||
6fce1faa10 | |||
db193d1e29 | |||
d14fe3ffed | |||
a00fad0177 | |||
45f11094b6 | |||
4c1dd13ba3 | |||
76710d4f95 | |||
ee03530fd9 | |||
16de25b1dc | |||
3daca187aa | |||
de3a641476 | |||
3cb5d25122 | |||
c140fa1426 | |||
0cbcef12bd | |||
208442ea18 | |||
ea01aec8b1 | |||
2dadc2c8fc | |||
1595e755af | |||
b1a00b7b6d | |||
d03f767cae | |||
c25b64a057 | |||
caa04e0cae | |||
29b7852dc1 | |||
7239b8a4f1 | |||
590d96be64 | |||
f4641ca481 | |||
16f119e62a | |||
4e71418566 | |||
3fb4c6bc38 | |||
471c33f007 | |||
eed0d76682 | |||
ec660c383e | |||
d9cc693719 | |||
136badae64 | |||
090d9cf410 | |||
34b85d301f | |||
64fad53b50 | |||
aef5da50f4 | |||
86e03a64e1 | |||
f95085fd91 | |||
050ad925f3 | |||
a854c3a25e | |||
ebbdeeede1 | |||
5dad6a5a84 | |||
2384f77d76 | |||
e688b78791 | |||
8b258b3b14 | |||
a1ba8e61d1 | |||
f6398eb0fa | |||
db17a9898d | |||
98b813d0d4 | |||
bdfa94b787 | |||
a0d0c6b7e6 | |||
1993a2aa9e | |||
15f5a4858b | |||
9e0ddc0e14 | |||
e21d7b77ce | |||
577a93514f | |||
08184aa85c | |||
a19a7524f6 | |||
f5b0caee71 | |||
351ba3e67c | |||
994438040c | |||
c6ecf57dd2 | |||
7a85c488a8 | |||
1ad08c7a5b | |||
8aa44e14cf | |||
10c31e96df | |||
d261a1751a | |||
932c4ca5a0 | |||
c07e566baf | |||
92f282ca52 | |||
50efbb9f1e | |||
0f8bec4399 | |||
a5630239ad | |||
1011e0ae98 | |||
7a694f6683 | |||
75b86b1554 | |||
5e8bf29148 | |||
1f1e2eeb9d | |||
0d5f978795 | |||
a645a18d2e | |||
27ffa67984 | |||
cf11fc0dcb | |||
8b68912dfc | |||
3402a5d865 | |||
3775fc982d | |||
d13ce2e2b5 | |||
71ff168dbb | |||
496e57283d | |||
65864d0134 | |||
8b4c487581 | |||
1e92d7b688 | |||
416a7894fe | |||
7d12e6dceb | |||
a2566adfb6 | |||
1b70366957 | |||
eaa449fbf0 | |||
b5f1ffa7ab | |||
e09324e7da | |||
b977abd5de | |||
6180574771 | |||
202e5cc87d | |||
43e1df64f8 | |||
5470fcd5b9 | |||
d91b49dbaa | |||
3fc6e47d42 | |||
5573c17877 | |||
ce96146623 | |||
348d02a983 | |||
36a6516290 | |||
d9d95dc55e | |||
ab646cd805 | |||
26aea277f7 | |||
d503217ea4 | |||
9953f55f4c | |||
387d3fc296 | |||
0dbc72887b | |||
4fcd15a667 | |||
594162f7ab | |||
92e38a476f | |||
092349dcdd | |||
70853b792a | |||
9e806c1a60 | |||
d01a7a9faa | |||
fb35d1e01f | |||
2bf622685d | |||
2446dead35 | |||
cfb642bb6b | |||
3645634f3c | |||
578b8d75e5 | |||
834d8b0965 | |||
b0a6d9ad27 | |||
da9e61ef70 | |||
94db935749 | |||
297b42012d | |||
a32255481b | |||
4655eb3ee2 | |||
4b4ba7ab06 | |||
17e9c2d1e7 | |||
41e36e2b46 | |||
4f9c68454a | |||
4811dc3de9 | |||
f65df5edae | |||
eaec9e80b8 | |||
76f975948e | |||
cccb121d4e | |||
c5f114747e | |||
f0fceed432 | |||
67d7040fce | |||
40cebde3bc | |||
c35d1f7b3a | |||
25531eb735 | |||
cbf5ba1e97 | |||
33d0c11b26 | |||
43dc17fd00 | |||
503c0dd923 | |||
1285443994 | |||
e7711d6c7d | |||
ca03a14cf7 | |||
7a554e96b4 | |||
202600bc23 | |||
f997b2b8e6 | |||
6dd3f81aaf | |||
a7933acd5a | |||
dd443f418a | |||
afc76c6f2d | |||
5ff97e79ee | |||
2fe7e332c7 | |||
26ec06e45d | |||
7b3da5f297 | |||
20b62fed21 | |||
f685018ea9 | |||
b6e51711a0 | |||
4c16797e71 | |||
de35d3062f | |||
cae817c862 | |||
b07d0a22f5 | |||
66c33d5989 | |||
23e26b84af | |||
3b40b07efb | |||
042b733ddd | |||
aa31e7019a | |||
47ba47a81f | |||
c352b6aaaf | |||
ba5aec88c6 | |||
310eb6d8c6 | |||
633a9a3b13 | |||
b8859dc4b8 | |||
40de63be09 | |||
c7338f457c | |||
13d40f6fc5 | |||
2c88a923a7 | |||
d52aff3e73 | |||
85d9946001 | |||
208b922327 | |||
e6bf1710ff | |||
c142af7209 | |||
3e42f21eee | |||
bb22132c8d | |||
97c8a0739e | |||
26e392132d | |||
8693322ef0 | |||
d01415409b | |||
e4a5958ab5 | |||
e96dc3665a | |||
c566f2465f | |||
880e3d18a4 | |||
bf7db4e4f9 | |||
2ba60a1618 | |||
89929d9abc | |||
ca77f0a986 | |||
e3308d835d | |||
bb4dfe90b8 | |||
71d0eff6e7 | |||
ec3f52dd27 | |||
5beb859e74 | |||
f33bcbe5fd | |||
c45ca8092d | |||
d96254631e | |||
2b95da7ef4 | |||
f7467c3b95 | |||
0c7856973b | |||
3b33f26513 | |||
d6091c8726 | |||
ef0f5919c7 | |||
5ead965026 | |||
30094bedbc | |||
d966d91e37 | |||
f5c67917d3 | |||
856a8410f2 | |||
41e512a4cd | |||
1ba39ec1d0 | |||
b58a0c3c4d | |||
289486d007 | |||
39ca96398b | |||
b567ca0f51 | |||
d23c0150f3 | |||
16b8146c9e | |||
44dadf2506 | |||
f754c0ae1b | |||
fe6d0e3a04 | |||
b744ed6816 | |||
adf401f822 | |||
534f43ddce | |||
3ef4c27ab3 | |||
ed494603c7 | |||
b094972051 | |||
9d0e0e6f1d | |||
05ac7cd760 | |||
d5aefadb17 | |||
a4b44dd2ef | |||
5fd670e0ef | |||
5b392d22c6 | |||
0159ebb654 | |||
8de0d7690c | |||
68b1a09422 | |||
13049cd6e5 | |||
13114da4ef | |||
be7752ead3 | |||
9dc4bd7466 | |||
94caba4899 | |||
c582602245 | |||
761cf91e3c | |||
d028b810fe | |||
2033934ff8 | |||
2ac710e667 | |||
0fa0ac80e4 | |||
3418708abf | |||
87a3f664e1 | |||
3e10a1eb5a | |||
c7cbcdad76 | |||
dde5974b13 | |||
ef8236f12b | |||
a34320a6f2 | |||
767c47d3c0 | |||
4d0a44d34a | |||
f480385277 | |||
0916d72e99 | |||
3515090006 | |||
136b19b062 | |||
4a18fcf7af | |||
0b81f700aa | |||
de57a6e806 | |||
02b0b524b5 | |||
d0147290d8 | |||
2ee201a7d0 | |||
bdfc1d3987 | |||
c7ca89a11a | |||
58771315d3 | |||
141a9c7204 | |||
4df10a6340 | |||
b98d33c155 | |||
74341e1150 | |||
1dbd3476de | |||
43bbd781f2 | |||
46ecc673ae | |||
0be6584203 | |||
1565940114 | |||
79b7fff188 | |||
ddd71e3479 | |||
55236d0cb7 | |||
ef8c474fcf | |||
3c5883e550 | |||
a23dae22d5 | |||
dbef2b05b4 | |||
28a4db84f2 | |||
900c5083ed | |||
68624cf089 | |||
af82dc816a | |||
2588b5e51a | |||
a0e062c6f1 | |||
3541e450af | |||
3322ee236d | |||
1d231ff8ba | |||
1ccc8f0200 | |||
1dd4b9221b | |||
0a3c064c12 | |||
78128cbdd8 | |||
0f5b052dba | |||
73604eed0c | |||
019b80855f | |||
7ff576072f | |||
adcce538b7 | |||
d0ac5d55ba | |||
fc61aae70f | |||
42955e04f1 | |||
e94bdc7876 | |||
a6fac0e969 | |||
b417e32da2 | |||
c507f402f1 | |||
17e8a51ff2 | |||
1c4780e69a | |||
50e90d7203 | |||
472c7cf962 | |||
3d7f3f6a55 | |||
e1fc4362fb | |||
bb67ff2ba7 | |||
27d97b9649 | |||
be96ccf77c | |||
96738c9d75 | |||
1ff226d88c | |||
bf5c7bf06d | |||
92c4771853 | |||
c5f6b72041 | |||
38f97ec8e3 | |||
ed86ac2f25 | |||
7b6b10417d | |||
2ec149cd3e | |||
7af38eb98b | |||
dc1959e6a7 | |||
97fd087cdb | |||
b5dd60fa75 | |||
7940f2428f | |||
816061843a | |||
e93ca12c88 | |||
08d111250a | |||
4648848696 | |||
e5563f7ad7 | |||
268092db83 | |||
326db8af4c | |||
8db8ac700d | |||
907c32faac | |||
74ef74be36 | |||
d33d68e326 | |||
af4c87953e | |||
94f92fbd88 | |||
1a0d00f1f4 | |||
050aa67e41 | |||
90fb83749e | |||
9cd53b3212 | |||
50d5aa8c10 | |||
f71c3d265a | |||
6245d5b87b | |||
a63efee5cd | |||
cdb9df5efe | |||
d433a603af | |||
a1061009c9 | |||
ff77c67d16 | |||
ff7d94c67e | |||
929de1d0d4 | |||
ad8bdfae1e | |||
1431663693 | |||
0b228a2af8 | |||
6cc57c64b2 | |||
d7a25e1d8c | |||
0d9208a398 | |||
ccafc93be5 | |||
eb15b1a016 | |||
1034f456ef | |||
0694918aeb | |||
f260cc2edf | |||
8d3c6494ae | |||
5ad759ca33 | |||
5ae9c01794 | |||
962e1f6ca7 | |||
5d39b14b68 | |||
195abdb85c | |||
519342962d | |||
e2a87fb1e9 | |||
a1d0b4d568 | |||
2c8fc3f4ce | |||
1aa0e35a04 | |||
4ff1a4dd0f | |||
9dc47f5e62 | |||
4c28a0eb0b | |||
e52e93e8fd | |||
54ff320519 | |||
aa9f4cc733 | |||
286f2dba9f | |||
2cfc2da527 | |||
c638a40a93 | |||
1f19ccb5b3 | |||
8ff3a5be1b | |||
f5a2a22dc4 | |||
eaa2c0e009 | |||
09a82f3d24 | |||
adf0f50cc7 | |||
69813dbbfd | |||
78d69bfe11 | |||
2ca7f0fc5c | |||
58e2cf364b | |||
157de30f53 | |||
74a9001ada | |||
f8fbfe5846 | |||
a23d86c178 | |||
3546628a2a | |||
afd081c9d4 | |||
2553278bae | |||
6eae569546 | |||
2eef749b31 | |||
8ae4f82243 | |||
7fd3b69886 | |||
09127b096c | |||
75c22dd8bf | |||
0e49b2f18e | |||
8d90392fb0 | |||
6c0b15e382 | |||
cc3a76edba | |||
ca3f48dd5b | |||
55cdcef0f7 | |||
9d81767d43 | |||
0afb4872aa | |||
9f8d3f511f | |||
2f198605ac | |||
25b2e46573 | |||
673b9bd561 | |||
80846caa8c | |||
49b9f2d8b0 | |||
311af3b988 | |||
b23779ef0a | |||
a699bd1155 | |||
b454c51060 | |||
058302494c | |||
d2c60749ac | |||
8301add833 | |||
bcfc560aea | |||
bf5addb613 | |||
7c93c4f8cf | |||
b3821f1da1 | |||
edbadc904b | |||
b2eb0e8c6a | |||
30d7e7a1cd | |||
629bd6f718 | |||
e7929809f3 | |||
b319fa3fd9 | |||
25499de814 | |||
b0cf287b46 | |||
f0ba309d78 | |||
1b6bbaa016 | |||
ff61f55387 | |||
5633773188 | |||
0eb9c870fd | |||
978c5a80a0 | |||
fee677eeb6 | |||
8f7d66f0c3 | |||
d95aedf5fd | |||
44fa9f991c | |||
b6abac68ec | |||
c95ddd4bf2 | |||
240467adfe | |||
b0171c3920 | |||
828ab84e19 | |||
3c5485fb7f | |||
1b10a5c652 | |||
afc2615d33 | |||
b459ca78eb | |||
1a7e8e5780 | |||
88c973005d | |||
83b5d449a3 | |||
c9c84ae3ee | |||
108a75b454 | |||
cedfac20c7 | |||
592a172910 | |||
4c645c04d8 | |||
5fb8754434 | |||
aea1148d56 | |||
72586ccd14 | |||
d64fa11095 | |||
15faed60ca | |||
b8ea5b01c9 | |||
4c8193b8f0 | |||
90c821814e | |||
64cfcbd8a3 | |||
b7baa062fc | |||
cdb9c7d228 | |||
24c2dd2002 | |||
938f37b745 | |||
e2ff094008 | |||
0d7ac1966a | |||
de06345e9b | |||
e847b6bb9b | |||
7868b65c4d | |||
7b20514f8e | |||
df467f8746 | |||
6bddfb9546 | |||
2a73ba298c | |||
5f0bd98767 | |||
a5ef04a3b8 | |||
8604c0a150 | |||
d2204d4f0f | |||
255cd75a97 | |||
0870398fa8 | |||
96dfe95ed0 | |||
5d5a45dc85 | |||
b3eef3deaf | |||
345578afb4 | |||
a3e1416c05 | |||
6c1e2d2462 | |||
865facda44 | |||
1491a61769 | |||
5fcfccefc6 | |||
18aaceb7be | |||
84b3f1900a | |||
05304f59f0 | |||
32e057636c | |||
750d68ff70 | |||
696107efcb | |||
6835f20d20 | |||
dd5a7c8397 | |||
1da3a049da | |||
3ef1cc8583 | |||
2db28a9611 | |||
57625bacea | |||
68425e68fe | |||
32e052e468 | |||
585c049fa3 | |||
afaa5fcecb | |||
683609c631 | |||
4b1fb3b0ed | |||
2bffbe06bd | |||
313bc11963 | |||
539be0a769 | |||
0d79f67a25 | |||
bd0db490bf | |||
c929e1e11f | |||
695291be2f | |||
30dc6338c1 | |||
19eb14493a | |||
6535f11259 | |||
c2e2602ecd | |||
3d8db41337 | |||
022cd7c9aa | |||
843fdf81c2 | |||
af664882dd | |||
b39ec7fbe9 | |||
66d3eb783c | |||
8337b4d96e | |||
e8fc1e0118 | |||
06cc2e83f0 | |||
d1abd6241a | |||
c42ac54d9e | |||
5f3d22a609 | |||
5a7b544e5c | |||
bc785c2d9a | |||
f7c1f32803 | |||
41fab40be7 | |||
1ae5d5bb62 | |||
a36739f36a | |||
2e1830c7c8 | |||
15b5a0b67f | |||
88ead0afc6 | |||
3fa874abbe | |||
98e6a1d8ff | |||
2540ee372a | |||
ccc0aa69ce | |||
b03381cac2 | |||
5229b52bf2 | |||
bb0bf09aff | |||
28ce3c0227 | |||
3f58a8051a | |||
37b4bc60a4 | |||
178e8563b8 | |||
71dd52f51a | |||
49430bfd5c | |||
c188d419db | |||
81a822ddc9 | |||
49f6ea6dd9 | |||
43f78bf37a | |||
278bc985d7 | |||
333890b701 | |||
e41b520ee3 | |||
bce0caba78 | |||
fbf3fc2a30 | |||
3caf3baabb | |||
c3d02fa390 | |||
33f1ee036e | |||
8d93fe510e | |||
187d55018a | |||
52dfe99dbf | |||
3a2f7192c3 | |||
f2b57d8831 | |||
b02695d65f | |||
6590f4fb0e | |||
36376efd06 | |||
2bd02e0c82 | |||
91fd270535 | |||
5109c5ef23 | |||
241df7e7f8 | |||
11af423eca | |||
08b5e07e6c | |||
68570fca69 | |||
42097f0ec1 | |||
25d5a815f7 | |||
48ee0984ac | |||
d97ca968cd | |||
626acaeb16 | |||
d1fdf984c3 | |||
c0b4aaa8c5 | |||
f147349568 | |||
09e366cb57 | |||
7492da804f | |||
e8d3c4be36 | |||
f08d484702 | |||
b6891f4002 | |||
15addb00e6 | |||
994fcb9acd | |||
32f57ac627 | |||
b0bafd2be5 | |||
188cb5e67b | |||
6c82a1c68c | |||
c51fc7e98e | |||
c6ea7b3f21 | |||
c7af2728d3 | |||
874ae854eb | |||
cfcb9e388d | |||
6f738d6434 | |||
9a998d98f1 | |||
65b3e42074 | |||
2ec95ffe57 | |||
3f525c9d5d | |||
2b95007d12 | |||
06faa15194 | |||
afb3e5ed6a | |||
1fdeb4e329 | |||
ff9be0eda9 | |||
59ca56e56c | |||
641724ed1d | |||
8de56e2958 | |||
14ddd932fd | |||
432638f521 | |||
d131048056 | |||
66d6d8b1b9 | |||
0d4eacb9d2 | |||
565e2ea019 | |||
fb26b84390 | |||
f1dc3b108a | |||
a8619c9a1d | |||
64d9afd8a7 | |||
ad7dda7b32 | |||
773a782249 | |||
517aee5369 | |||
6564e746ed | |||
da69a28c6f | |||
f31404ba6f | |||
6ca68357b3 | |||
08f14d5492 | |||
d6f30b91e5 | |||
e37eef8a7b | |||
8d404581fc | |||
68fcd54226 | |||
32ed4a3beb | |||
df6831562c | |||
76b0284744 | |||
318d3b39c4 | |||
5153550e4b | |||
5fab35d77c | |||
92151c814b | |||
0a976b8899 | |||
8b6b1721c8 | |||
4bae7ae3d9 | |||
35f36363ec | |||
42e61c783c | |||
ae00063570 | |||
e72e924eb5 | |||
c0c82a5f6a | |||
cf60fe53a8 | |||
0d4cedaa47 | |||
47ed5f57b0 | |||
fbd020fce6 | |||
fed6096e73 | |||
d56a395971 | |||
27dfd63ee8 | |||
d717df2071 | |||
fb9d2dc641 | |||
f8cf1829b5 | |||
0bde3c4f2f | |||
d6368985af | |||
b4a1673a67 | |||
215b14530a | |||
1c6fbae579 | |||
a0ef8888e6 | |||
99b3b58f39 | |||
d5f6d68d68 | |||
cd89bf77c8 | |||
4dc9795ebf | |||
2ee6b97464 | |||
1a4709cef5 | |||
addee9f4d1 | |||
702c810780 | |||
12b8e29203 | |||
695d7db2d6 | |||
455f6bda56 | |||
dcfa415e6e | |||
983bea399d | |||
0a6cc15079 | |||
4b3ed8bc52 | |||
b0803129e8 | |||
ec28121017 | |||
648fc6c9c1 | |||
d04cd7f3ba | |||
19ff9059eb | |||
98d6a6eb7d | |||
271ee90851 | |||
99e789b52b | |||
fd33499b0c | |||
be207af6e1 | |||
861bdf96f4 | |||
447f428d6d | |||
f57b00704e | |||
bc9e20b927 | |||
88ba50279c | |||
3ac527ac5f | |||
41e6619509 | |||
a0cb54ab46 | |||
fb59440791 | |||
678a8f9e66 | |||
611c104370 | |||
0063e56949 | |||
5ee070266f | |||
90c3669cd9 | |||
eb3d517605 | |||
e5baf43b61 | |||
caaa339e0f | |||
b833990a8f | |||
4ee65c7e4e | |||
1df1d00ffc | |||
374c61cc82 | |||
2cffe82dea | |||
f735038c8f | |||
6790eb52f9 | |||
6d85077168 | |||
18705e371d | |||
770086fe39 | |||
38e5ee1a34 | |||
9c2d119194 | |||
46af996ce7 | |||
8b8b4e5ae9 | |||
0e0077f3b6 | |||
e51c8ad369 | |||
51e13745be | |||
eca8b4220f | |||
a6aa451bde | |||
e1b9b89d94 | |||
b444343087 | |||
762b1b4c17 | |||
dd69013c7a | |||
15183f5ebf | |||
30fbf5b19c | |||
5ed3b70d09 | |||
f64146aff0 | |||
d12bbcd785 | |||
3d45717219 | |||
8ea5b572a6 | |||
8a2b064236 | |||
fcc2fc1a70 | |||
d9f17cf4e4 | |||
8a5708ba3d | |||
a1a869f2f5 | |||
1653f7786d | |||
3a904d1163 | |||
add0f0085c | |||
929d2f8253 | |||
c22f51ce7c | |||
8f7cf796ea | |||
d9576c9440 | |||
c8ad5e37e8 | |||
0d2be06d94 | |||
7ad3108ef2 | |||
413416cf33 | |||
f347174d61 | |||
29c4b4ea5a | |||
86aa327e4a | |||
90d2593b3e | |||
5f1470d45d | |||
09a489b177 | |||
cdf217cda1 | |||
161cc137d2 | |||
99cf567714 | |||
5dfb22d4c8 | |||
7673ee5456 | |||
dff388491b | |||
27538671ae | |||
4aa66f68a8 | |||
41d6cabca1 | |||
546c53b784 | |||
59b3f5911d | |||
5ec9c0bc4a | |||
cfec69e2a1 | |||
d3b458e603 | |||
2236194c6b | |||
a7c6e30a3f | |||
018e48c337 | |||
c23dceb8f1 | |||
3434a54fba | |||
7470ae85e4 | |||
fc5aa24a6e | |||
a75248528f | |||
dd6ce2fe7c | |||
758a0a88a2 | |||
57d1ffc512 | |||
a6ad834fa8 | |||
ec49ce5f8e | |||
59e33cd1f4 | |||
07adae3dac | |||
32d890745d | |||
bbddde311a | |||
9876aa39c0 | |||
f32a9e953f | |||
142353eca3 | |||
b0fc6aa412 | |||
b6335cfeab | |||
cf1fc07bd4 | |||
e6272acaec | |||
c88174df95 | |||
7eb31e5023 | |||
448d54ee92 | |||
8624a571b4 | |||
1120b5ab55 | |||
c2b2969b5d | |||
8676401707 | |||
dcdb25453e | |||
6d4287419c | |||
7a74294786 | |||
3965f11837 | |||
d8c494910b | |||
3fc9ee5a31 | |||
44eaef46d0 | |||
c0be0105c7 | |||
2e8c1be947 | |||
86cb24e6eb | |||
bedf96d7ff | |||
6980e9e569 | |||
63e5b09218 | |||
6f51782a59 | |||
cf81180007 | |||
d46e0761ca | |||
07c73a964b | |||
7b269cc484 | |||
4bb1650ca3 | |||
d114fd78bd | |||
7f40ac9be2 | |||
118b2a4139 | |||
62cd065de2 | |||
e554f71d7e | |||
854a5ba958 | |||
378b12f3ad | |||
efc6e8457a | |||
52741043e7 | |||
b5711297a0 | |||
ef580a0e5c | |||
d143f879e2 | |||
a6413d2924 | |||
a30504b2a2 | |||
4d11a9b783 | |||
7aee3376e2 | |||
2a4304329b | |||
f951fcd1d7 | |||
918367ebb0 | |||
1206958d89 | |||
d1d6b370ce | |||
14750dd737 | |||
5fff960004 | |||
4af4910b1a | |||
f23dbefe52 | |||
c2eeda5da0 | |||
7666ef9d9b | |||
3578598401 | |||
fbb0adbc32 | |||
5947169c9d | |||
c91bc499f7 | |||
caba37e99b | |||
9de023d44d | |||
c17d26c3c1 | |||
41da528378 | |||
8e074c4583 | |||
5a1d4f7ddc | |||
a9d34138df | |||
69de9e78e9 | |||
fa7ae6cdbc | |||
dfc7c860e4 | |||
61625a18ef | |||
657d58bbd8 | |||
2fde1934f9 | |||
a1ca4dfe0b | |||
19416bf38b | |||
dadb20a9d6 | |||
7172c732d9 | |||
be400ee2b4 | |||
89795da5e3 | |||
19270cff61 | |||
aa4fbba42d | |||
660436d843 | |||
2f30473fba | |||
2e7d67e6af | |||
c518b50c4c | |||
cd565bc455 | |||
4cca18d5b6 | |||
095c5ccf9f | |||
e0a5536cc9 | |||
7756175273 | |||
40061bd61e | |||
947a446be4 | |||
9f17037e8b | |||
50e837d9c2 | |||
af7830e353 | |||
4671e98656 | |||
fa36eba77d | |||
1e9bedf688 | |||
f1c439cbed | |||
e76f0e0646 | |||
7be77658e9 | |||
370b072d8d | |||
e61def65d5 | |||
00aa086298 | |||
89670d5bdd | |||
844103197d | |||
656465fc77 | |||
d4b31f7bcf | |||
e553ef69d0 | |||
8585dee85d | |||
592682fe22 | |||
80ed3e9ccd | |||
4f0d5f6551 | |||
36c4ed8e49 | |||
cdcc7dc891 | |||
cc1cc71c46 | |||
666362865c | |||
fa1d7b0262 | |||
afb73d253c | |||
d53dfa4680 | |||
0e4c0ef29f | |||
e7d8d73582 | |||
d51e5467fd | |||
d61815cb7d | |||
1371c420c3 | |||
b06959e614 | |||
3128640c31 | |||
454713fe9d | |||
9641abe97a | |||
e9eb8795bb | |||
26b0a0c2f3 | |||
f5e704a6f2 | |||
27c44c884e | |||
7f08b73980 | |||
456909e5d3 | |||
2d71f03db1 | |||
e7b870c88b | |||
04f37ed57d | |||
78ccbad678 | |||
79ca596dc6 | |||
a7912bf9dc | |||
5b7b3e4af0 | |||
92f650c5b3 | |||
4a3a30c36e | |||
32be3e942c | |||
b9922f7a5a | |||
c860889a65 | |||
2ad011ca73 | |||
343071cd96 | |||
c8275e25a7 | |||
9f0d90655d | |||
cc5a57d185 | |||
e888f401c5 | |||
05de2b2d0f | |||
e890d888d9 | |||
8fbd7d92a8 | |||
c89936eaa0 | |||
f037803290 | |||
de48d54042 | |||
3899465268 | |||
72f2b29bb0 | |||
21302d5891 | |||
e7512ab752 | |||
e5fa190e01 | |||
3b440f358c | |||
6beb2be2ed | |||
d2ecdcb2f7 | |||
b0b4723062 | |||
4110cb6ba7 | |||
dc8bb2636c | |||
78fa32a77b | |||
c44cb89e06 | |||
cd307fb0b1 | |||
78cf8df4a0 | |||
472b0daeaa | |||
e66084f9bf | |||
b41d62a3a2 | |||
f3eab23c42 | |||
31ef900a65 | |||
6c012f7217 | |||
655ec07525 | |||
d13e72fd6a | |||
574cdf1232 | |||
2dbe5cb979 | |||
bc57d5b6ff | |||
23b877cb54 | |||
50595ecef4 | |||
065f7aa44b | |||
4bdb4bbd86 | |||
f2bacd908a | |||
465e071898 | |||
f565d16acb | |||
927b4c1114 | |||
7b8ab7eb3e | |||
ea00036841 | |||
5707c6e952 | |||
da65cfbdea | |||
05e8e87a69 | |||
bb6eef8ed1 | |||
8875226d62 | |||
3b7edc12c6 | |||
22ea248aa8 | |||
8967d55b01 | |||
313aa151da | |||
4101dd14c2 | |||
0ff0bf3d31 | |||
10c2168b31 | |||
3c5b246d3c | |||
e2b94923ba | |||
fa8c34301a | |||
45cf8ef557 | |||
1434e0b121 | |||
1f66487c69 | |||
f25df31008 | |||
3d0de6e1cd | |||
8707c6dfac | |||
9cca0494b9 | |||
cd30861857 | |||
40767e8468 | |||
7bd0732cbd | |||
a9954d22f8 | |||
b845068db2 | |||
c326533999 | |||
de288e2203 | |||
322c9d03a0 | |||
21906ddaba | |||
ac95b2a2f2 | |||
75eb66afc0 | |||
3ec9ec03a8 | |||
942ffd1b2d | |||
eeb6ad0744 | |||
dfc5bb0099 | |||
4a4dc9d6d9 | |||
9d5c85c499 | |||
4ee5547b37 | |||
b885ad8fce | |||
0ca8f66e3a | |||
c4071c4707 | |||
9db5bfccdc | |||
51ddcde110 | |||
6f99e97f0a | |||
42cd397a0e | |||
d1f73fd844 | |||
902c6f3a19 | |||
0e43175e22 | |||
35fd4391bc | |||
b4e2411f6f | |||
aec6332356 | |||
54efd43022 | |||
361db32d47 | |||
0f19d4150b | |||
ec49796b8f | |||
24dee99cb7 | |||
7f71f2a997 | |||
9e37e73e01 | |||
ac960dced1 | |||
9c5e0d47fe | |||
751c744ad0 | |||
83e4af203d | |||
479d460471 | |||
0e8541766f | |||
9e584d0c05 | |||
a270800f0b | |||
745665d8b5 | |||
aff48f7378 | |||
4a1edbe475 | |||
5ae979ab10 | |||
4fd0d594a1 | |||
b483ca05a9 | |||
ac6398b630 | |||
636a7c4859 | |||
fd874b799f | |||
c69b2d24e3 | |||
194ec49d27 | |||
45d0e90bd3 | |||
4ca616e6d4 | |||
fb6b001cde | |||
5709375d56 | |||
59f4725b49 | |||
bbf568aac8 | |||
0f90ffe94a | |||
5cb05a82b4 | |||
a9036e1cf8 | |||
441c1c03d5 | |||
374747818d | |||
f16d87eeff | |||
b73d4b6555 | |||
9282e6ca78 | |||
42226ca3a3 | |||
5e4d8eb831 | |||
708a99e52a | |||
c3e51c09ed | |||
383f2ac914 | |||
c327710a87 | |||
21d4c48059 | |||
acad2050c1 | |||
700a11fdd4 | |||
48f7bdbbe1 | |||
260e7cb143 | |||
525fdc0f95 | |||
6a348e5e57 | |||
e76bd0b603 | |||
7830373662 | |||
59bbaea3a7 | |||
7ea8374c0e | |||
83fa7f871f | |||
ff81ca8e0c | |||
4fe6a5dc34 | |||
26b0011fb8 | |||
07551887b8 | |||
ca713b8393 | |||
a9ff190867 | |||
9d476fee53 | |||
f2ad3c89b0 | |||
1749025081 | |||
25df063f04 | |||
40ce0a53bb | |||
ad0ce89050 | |||
0b0c660c02 | |||
92a17f454a | |||
123d9ec5bf | |||
a62710c820 | |||
32a284c275 | |||
ffd0d92c18 | |||
8b50d5398f | |||
258f47fc0b | |||
780310fed7 | |||
de9b8a42c1 | |||
13fa59580e | |||
ed97fb77f9 | |||
fb146fc3c6 | |||
7c79e89bc5 | |||
bb99008c9e | |||
32f9a809c7 | |||
8c8eb9670a | |||
37ab0f3385 | |||
8333ecf085 | |||
c8c964f950 | |||
c184ac0f6b | |||
87053132ea | |||
dc00eeb0f4 | |||
2206a3de00 | |||
4faa0e3efb | |||
8bc5ef563e | |||
527f104a69 | |||
bfeb45e46b | |||
03480213de | |||
919e384247 | |||
063a45ed27 | |||
73c083e02c | |||
ed224554eb | |||
837898d9c8 | |||
b01402b0a4 | |||
178dc0c9c7 | |||
cb4d1bfb71 | |||
cbee9c1fd2 | |||
e98eac76b3 | |||
c7113a6186 | |||
0d6caeb259 | |||
cd7f527c59 | |||
179b572fd9 | |||
825002c9c6 | |||
073cee531c | |||
1a23ef2ece | |||
18b678082e | |||
3c1033eeb0 | |||
2073ddfd1c | |||
623d0204f0 | |||
2f908ffa4a | |||
029f8fc701 | |||
e47b684c33 | |||
94155ce31b | |||
de00c79583 | |||
1954bfacda | |||
775c310c0c | |||
4faa5804f6 | |||
1e65ccc3de | |||
81a5a7a30a | |||
c2bccfd431 | |||
1de4ebc85d | |||
db0bd04151 | |||
8d2c272e5a | |||
c6582f11cd | |||
e3394e5548 | |||
af67b8df6d | |||
e6eee04875 | |||
f50621989b | |||
406b50835b | |||
a94c441e48 | |||
ffdf48e63b | |||
7045bc5a77 | |||
ca7ce2fca1 | |||
c803e35c4b | |||
fc7849b93f | |||
679cdf606a | |||
6753ee127c | |||
7100c36c8a | |||
656a4d1408 | |||
a8f0979962 | |||
da320214e6 | |||
728374d7f7 | |||
91df66ee74 | |||
4260f365ba | |||
4e610924d4 | |||
39c9b75a68 | |||
345bea01dc | |||
93fad2f0f2 | |||
2f16e68cab | |||
38674bcb45 | |||
d6a24b3b92 | |||
96471ea47c | |||
26c6786109 | |||
eca0cb0fbe | |||
4306eebab1 | |||
1add8c5f1c | |||
3ef45e5669 | |||
a74e5abda4 | |||
a4ed8eeb33 | |||
4a2cf50edf | |||
ea42027e0e | |||
2b5e31d099 | |||
af8b8a47cb | |||
1a0db29932 | |||
4db368a475 | |||
ee0ae11b34 | |||
9a1ad3345f | |||
6b12dc0224 | |||
6f4dc56735 | |||
1471473b84 | |||
b7bcfdaff2 | |||
2764bee942 | |||
a3ea96b762 | |||
1d34f33d00 | |||
e1c2bdac2f | |||
aec948adfc | |||
8d9c3a71f6 | |||
618e2c9de4 | |||
1c7dc335f7 | |||
7b2664ece6 | |||
baa2483cea | |||
d5045cceff | |||
e8645fa2b9 | |||
3d87dfc088 | |||
df59084012 | |||
6919e8baab | |||
d532c00c81 | |||
a672f6c84e | |||
9945caec65 | |||
a8490a0762 | |||
14edd986b3 | |||
70cb16b316 | |||
c65cb37657 | |||
b465a5843b | |||
c3ee07c71c | |||
b30d0916d9 | |||
fb87796d4f | |||
27f61eba58 | |||
55b0c39d82 | |||
ae44b8f410 | |||
1fb498d6e3 | |||
c7cfa51721 | |||
01cdcbf7c8 | |||
09f9c256ad | |||
6e79932543 | |||
3558a8cf4a | |||
f2ddd5e9e0 | |||
9be33bc584 | |||
0a25666f92 | |||
fd4b649e6c | |||
4226ed1585 | |||
c35061c542 | |||
09fcd792eb | |||
5dac4d2c78 | |||
105ba7b58c | |||
908d2a153b | |||
87d46d70d7 | |||
d2dc173664 | |||
f7aeb394b6 | |||
f3fce597e9 | |||
2714adce20 | |||
522fa03e91 | |||
2a8e94347f | |||
8ff310392e | |||
7f8a384a8f | |||
81b8d3586f | |||
6ec4af6865 | |||
d984105748 | |||
6c65fd0394 | |||
bc46f205c4 | |||
00097f3458 | |||
e3387c6712 | |||
bbce517221 | |||
21d02f8b4b | |||
a896fb1b36 | |||
0e7e61f7ce | |||
159d508f03 | |||
36ec0fdf10 | |||
8ad9f89ccc | |||
06581c277a | |||
b28c01d90d | |||
ed4493de0e | |||
1f5dfe00da | |||
6966d44eda | |||
5973aec671 | |||
0b571b1058 | |||
373e9be457 | |||
25903f3932 | |||
419b76c4ac | |||
841cadd555 | |||
243a763e1b | |||
a503136583 | |||
64720f3b89 | |||
fcef6cc6d1 | |||
705ac311aa | |||
e3513fb2af | |||
85f19ce14a | |||
bcac71517c | |||
1962f9475f | |||
37c3d503b7 | |||
7c1cca9fda | |||
625f494619 | |||
f379bbd46d | |||
642257db1a | |||
dccce77935 | |||
f49d5e30eb | |||
e81e74ca6c | |||
b71cd149ce | |||
bcb4f7c172 | |||
afca6f5b47 | |||
24d0a32f98 | |||
e696f17467 | |||
e4e3575fb0 | |||
59b73079a0 | |||
193a19ee91 | |||
b8f7019df0 | |||
e0514a5b99 | |||
a9e1133faa | |||
df781343e2 | |||
19897a1647 | |||
87d58cc81f | |||
207e24ff83 | |||
0c491702c4 | |||
9167113c16 | |||
fc32732596 | |||
8fff976355 | |||
1197550876 | |||
296c339f98 | |||
82b6480b0a | |||
9eeb5eebab | |||
fca2dba7ca | |||
d224857b3a | |||
63eb06c051 | |||
5aafdc2f87 | |||
78f4a3919f | |||
ccf9ce8e8c | |||
053e5080f6 | |||
48929184e9 | |||
b9cb1abf65 | |||
56f2917bef | |||
0d9c9716b2 | |||
d342dc0179 | |||
d903e664c6 | |||
290f09f829 | |||
8668bc279d | |||
d2e9a8bf6d | |||
a4ea776881 | |||
babb249a89 | |||
2ee9895304 | |||
f936e68506 | |||
e5560d10f4 | |||
7d8b95e8fb | |||
35d14d22a0 | |||
5ea0f51187 | |||
2b86a7fcc7 | |||
07fe1dd58f | |||
1250171866 | |||
6c4ce4331c | |||
cd5452aace | |||
3a355c1891 | |||
bc510916fa | |||
ef426d5183 | |||
50ed6ce277 | |||
64235c6a71 | |||
56334c854c | |||
ee1ef066fd | |||
625af2d27c | |||
0016be8051 | |||
3855ac5a5d | |||
0c3ac428a2 | |||
87ddf70fc6 | |||
1362d51e7d | |||
35400f750f | |||
2f54c38594 | |||
a356a03f4a | |||
92bebb46fa | |||
997f64af38 | |||
c8958f8f84 | |||
78927d37f6 | |||
71e22e0959 | |||
12f61e65eb | |||
596f568592 | |||
9853c048eb | |||
40c8f73099 | |||
93979e7063 | |||
fbf3bc0a60 | |||
0eea2b3947 | |||
ce61300141 | |||
97eba8e174 | |||
f467d55329 | |||
010fc7858a | |||
ff4ca0d02a | |||
7b816d7d6d | |||
69cbf05529 | |||
30293319a8 | |||
c59f3fff52 | |||
ee09d066d3 | |||
35fcd59fd8 | |||
920f0426ae | |||
221350e3a4 | |||
a6985c09cb | |||
72d2dba992 | |||
30d7f0b15a | |||
c99adce9a1 | |||
0d88dd0f77 | |||
d7d6190493 | |||
a4013e8b72 | |||
6c1f1563e1 | |||
6ff1e43a41 | |||
672ce4610e | |||
d95756f6a5 | |||
bdd83c4c7f | |||
043e41f4f4 | |||
d6a82ce39b | |||
aa0ed2496f | |||
612ea35395 | |||
4c29c1a96a | |||
7a779b5257 | |||
928adb7cc2 | |||
f32ab3b9e3 | |||
bcd1d2e832 | |||
e772547d70 | |||
90fa64bd7e | |||
7911b7bfb7 | |||
b25ef91bf1 | |||
bc7ed1fbdc | |||
46ed33b207 | |||
073430ebea | |||
81db69278d | |||
10344d76bd | |||
a28cda11ef | |||
589aef4bb0 | |||
718c13cd39 | |||
344c15a0bb | |||
2276d9045a | |||
7c89ec0f7c | |||
4e966e8a1c | |||
a488113062 | |||
6b28af1b79 | |||
f0da167ce5 | |||
645c1052a6 | |||
b0e06d9d6a |
@ -1,5 +1,5 @@
|
||||
0.6b
|
||||
0.7b
|
||||
manylinux_2_17
|
||||
rocm6.1
|
||||
7f07e8a1cb1f99627eb6d77f5c0e9295c775f3c7
|
||||
77c29fa3f3b614e187d7213d745e989a92708cee2bc6020419ab49019af399d1
|
||||
rocm6.2
|
||||
9be04068c3c0857a4cfd17d7e39e71d0423ebac2
|
||||
3e9e1959d23b93d78a08fcc5f868125dc3854dece32fd9458be9ef4467982291
|
||||
|
@ -92,7 +92,7 @@ _UCC_COMMIT=20eae37090a4ce1b32bcce6144ccad0b49943e0b
|
||||
# from scratch
|
||||
case "$image" in
|
||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
||||
CUDA_VERSION=12.4.0
|
||||
CUDA_VERSION=12.4.1
|
||||
CUDNN_VERSION=9
|
||||
ANACONDA_PYTHON_VERSION=3.10
|
||||
GCC_VERSION=9
|
||||
@ -120,7 +120,7 @@ case "$image" in
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks)
|
||||
CUDA_VERSION=12.4.0
|
||||
CUDA_VERSION=12.4.1
|
||||
CUDNN_VERSION=9
|
||||
ANACONDA_PYTHON_VERSION=3.10
|
||||
GCC_VERSION=9
|
||||
@ -165,7 +165,7 @@ case "$image" in
|
||||
INDUCTOR_BENCHMARKS=yes
|
||||
;;
|
||||
pytorch-linux-focal-cuda12.4-cudnn9-py3.12-gcc9-inductor-benchmarks)
|
||||
CUDA_VERSION=12.4.0
|
||||
CUDA_VERSION=12.4.1
|
||||
CUDNN_VERSION=9
|
||||
ANACONDA_PYTHON_VERSION=3.12
|
||||
GCC_VERSION=9
|
||||
@ -194,7 +194,7 @@ case "$image" in
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
||||
CUDA_VERSION=12.4.0
|
||||
CUDA_VERSION=12.4.1
|
||||
CUDNN_VERSION=9
|
||||
ANACONDA_PYTHON_VERSION=3.10
|
||||
GCC_VERSION=9
|
||||
@ -222,7 +222,7 @@ case "$image" in
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
||||
CUDA_VERSION=12.4.0
|
||||
CUDA_VERSION=12.4.1
|
||||
CUDNN_VERSION=9
|
||||
ANACONDA_PYTHON_VERSION=3.10
|
||||
GCC_VERSION=9
|
||||
@ -236,7 +236,7 @@ case "$image" in
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-py3-clang10-onnx)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
CLANG_VERSION=10
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
@ -245,7 +245,7 @@ case "$image" in
|
||||
ONNX=yes
|
||||
;;
|
||||
pytorch-linux-focal-py3-clang9-android-ndk-r21e)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
CLANG_VERSION=9
|
||||
LLVMDEV=yes
|
||||
PROTOBUF=yes
|
||||
@ -254,8 +254,8 @@ case "$image" in
|
||||
GRADLE_VERSION=6.8.3
|
||||
NINJA_VERSION=1.9.0
|
||||
;;
|
||||
pytorch-linux-focal-py3.8-clang10)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
pytorch-linux-focal-py3.9-clang10)
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
CLANG_VERSION=10
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
@ -276,8 +276,8 @@ case "$image" in
|
||||
CONDA_CMAKE=yes
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-py3.8-gcc9)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
pytorch-linux-focal-py3.9-gcc9)
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
GCC_VERSION=9
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
@ -286,18 +286,7 @@ case "$image" in
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-rocm-n-1-py3)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
GCC_VERSION=9
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
VISION=yes
|
||||
ROCM_VERSION=6.0
|
||||
NINJA_VERSION=1.9.0
|
||||
CONDA_CMAKE=yes
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-rocm-n-py3)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
ANACONDA_PYTHON_VERSION=3.10
|
||||
GCC_VERSION=9
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
@ -307,8 +296,19 @@ case "$image" in
|
||||
CONDA_CMAKE=yes
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-focal-rocm-n-py3)
|
||||
ANACONDA_PYTHON_VERSION=3.10
|
||||
GCC_VERSION=9
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
VISION=yes
|
||||
ROCM_VERSION=6.2
|
||||
NINJA_VERSION=1.9.0
|
||||
CONDA_CMAKE=yes
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-jammy-xpu-2024.0-py3)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
GCC_VERSION=11
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
@ -318,8 +318,8 @@ case "$image" in
|
||||
CONDA_CMAKE=yes
|
||||
TRITON=yes
|
||||
;;
|
||||
pytorch-linux-jammy-py3.8-gcc11-inductor-benchmarks)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks)
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
GCC_VERSION=11
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
@ -330,8 +330,8 @@ case "$image" in
|
||||
DOCS=yes
|
||||
INDUCTOR_BENCHMARKS=yes
|
||||
;;
|
||||
pytorch-linux-jammy-cuda11.8-cudnn9-py3.8-clang12)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
pytorch-linux-jammy-cuda11.8-cudnn9-py3.9-clang12)
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
CUDA_VERSION=11.8
|
||||
CUDNN_VERSION=9
|
||||
CLANG_VERSION=12
|
||||
@ -355,8 +355,8 @@ case "$image" in
|
||||
CONDA_CMAKE=yes
|
||||
VISION=yes
|
||||
;;
|
||||
pytorch-linux-jammy-py3.8-gcc11)
|
||||
ANACONDA_PYTHON_VERSION=3.8
|
||||
pytorch-linux-jammy-py3.9-gcc11)
|
||||
ANACONDA_PYTHON_VERSION=3.9
|
||||
GCC_VERSION=11
|
||||
PROTOBUF=yes
|
||||
DB=yes
|
||||
|
@ -108,10 +108,10 @@ ENV CMAKE_C_COMPILER cc
|
||||
ENV CMAKE_CXX_COMPILER c++
|
||||
COPY ./common/install_triton.sh install_triton.sh
|
||||
COPY ./common/common_utils.sh common_utils.sh
|
||||
COPY ci_commit_pins/triton-rocm.txt triton-rocm.txt
|
||||
COPY ci_commit_pins/triton.txt triton.txt
|
||||
COPY triton_version.txt triton_version.txt
|
||||
RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
|
||||
RUN rm install_triton.sh common_utils.sh triton-rocm.txt triton_version.txt
|
||||
RUN rm install_triton.sh common_utils.sh triton.txt triton_version.txt
|
||||
|
||||
# Install AOTriton (Early fail)
|
||||
COPY ./aotriton_version.txt aotriton_version.txt
|
||||
|
@ -1 +1 @@
|
||||
91298923a0076c1b41059efb6dad2876426e4b03
|
||||
cd1c833b079adb324871dcbbe75b43d42ffc0ade
|
||||
|
@ -1 +1 @@
|
||||
340136fec6d3ebc73e7a19eba1663e9b0ba8ab2d
|
||||
461c12871f336fe6f57b55d6a297f13ef209161b
|
@ -1 +1 @@
|
||||
730b907b4d45a4713cbc425cbf224c46089fd514
|
||||
ac3470188b914c5d7a5058a7e28b9eb685a62427
|
||||
|
@ -1 +0,0 @@
|
||||
21eae954efa5bf584da70324b640288c3ee7aede
|
@ -1 +1 @@
|
||||
1b2f15840e0d70eec50d84c7a0575cb835524def
|
||||
91b14bf5593cf58a8541f3e6b9125600a867d4ef
|
||||
|
@ -1 +1 @@
|
||||
dedb7bdf339a3546896d4820366ca562c586bfa0
|
||||
5fe38ffd73c2ac6ed6323b554205186696631c6f
|
||||
|
@ -1,5 +0,0 @@
|
||||
0.6b
|
||||
manylinux_2_17
|
||||
rocm6.1
|
||||
04b5df8c8123f90cba3ede7e971e6fbc6040d506
|
||||
77c29fa3f3b614e187d7213d745e989a92708cee2bc6020419ab49019af399d1
|
@ -4,12 +4,12 @@ set -ex
|
||||
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/common_utils.sh"
|
||||
|
||||
TARBALL='aotriton.tar.bz2'
|
||||
TARBALL='aotriton.tar.gz'
|
||||
# This read command alwasy returns with exit code 1
|
||||
read -d "\n" VER MANYLINUX ROCMBASE PINNED_COMMIT SHA256 < aotriton_version.txt || true
|
||||
ARCH=$(uname -m)
|
||||
AOTRITON_INSTALL_PREFIX="$1"
|
||||
AOTRITON_URL="https://github.com/ROCm/aotriton/releases/download/${VER}/aotriton-${VER}-${MANYLINUX}_${ARCH}-${ROCMBASE}-shared.tar.bz2"
|
||||
AOTRITON_URL="https://github.com/ROCm/aotriton/releases/download/${VER}/aotriton-${VER}-${MANYLINUX}_${ARCH}-${ROCMBASE}-shared.tar.gz"
|
||||
|
||||
cd "${AOTRITON_INSTALL_PREFIX}"
|
||||
# Must use -L to follow redirects
|
||||
|
@ -5,32 +5,22 @@ set -ex
|
||||
# Optionally install conda
|
||||
if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
|
||||
BASE_URL="https://repo.anaconda.com/miniconda"
|
||||
CONDA_FILE="Miniconda3-latest-Linux-x86_64.sh"
|
||||
if [[ $(uname -m) == "aarch64" ]] || [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
||||
BASE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
|
||||
CONDA_FILE="Miniforge3-Linux-$(uname -m).sh"
|
||||
fi
|
||||
|
||||
MAJOR_PYTHON_VERSION=$(echo "$ANACONDA_PYTHON_VERSION" | cut -d . -f 1)
|
||||
MINOR_PYTHON_VERSION=$(echo "$ANACONDA_PYTHON_VERSION" | cut -d . -f 2)
|
||||
|
||||
if [[ $(uname -m) == "aarch64" ]]; then
|
||||
BASE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
|
||||
case "$MAJOR_PYTHON_VERSION" in
|
||||
3)
|
||||
CONDA_FILE="Miniforge3-Linux-aarch64.sh"
|
||||
;;
|
||||
3);;
|
||||
*)
|
||||
echo "Unsupported ANACONDA_PYTHON_VERSION: $ANACONDA_PYTHON_VERSION"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case "$MAJOR_PYTHON_VERSION" in
|
||||
3)
|
||||
CONDA_FILE="Miniconda3-latest-Linux-x86_64.sh"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported ANACONDA_PYTHON_VERSION: $ANACONDA_PYTHON_VERSION"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
mkdir -p /opt/conda
|
||||
chown jenkins:jenkins /opt/conda
|
||||
@ -78,19 +68,20 @@ fi
|
||||
CONDA_COMMON_DEPS="astunparse pyyaml setuptools openblas==0.3.25=*openmp* ninja==1.11.1 scons==4.5.2"
|
||||
|
||||
if [ "$ANACONDA_PYTHON_VERSION" = "3.8" ]; then
|
||||
conda_install numpy=1.24.4 ${CONDA_COMMON_DEPS}
|
||||
NUMPY_VERSION=1.24.4
|
||||
else
|
||||
conda_install numpy=1.26.2 ${CONDA_COMMON_DEPS}
|
||||
NUMPY_VERSION=1.26.2
|
||||
fi
|
||||
else
|
||||
CONDA_COMMON_DEPS="astunparse pyyaml mkl=2021.4.0 mkl-include=2021.4.0 setuptools"
|
||||
|
||||
if [ "$ANACONDA_PYTHON_VERSION" = "3.11" ] || [ "$ANACONDA_PYTHON_VERSION" = "3.12" ] || [ "$ANACONDA_PYTHON_VERSION" = "3.13" ]; then
|
||||
conda_install numpy=1.26.0 ${CONDA_COMMON_DEPS}
|
||||
NUMPY_VERSION=1.26.0
|
||||
else
|
||||
conda_install numpy=1.21.2 ${CONDA_COMMON_DEPS}
|
||||
NUMPY_VERSION=1.21.2
|
||||
fi
|
||||
fi
|
||||
conda_install ${CONDA_COMMON_DEPS}
|
||||
|
||||
# Install llvm-8 as it is required to compile llvmlite-0.30.0 from source
|
||||
# and libpython-static for torch deploy
|
||||
@ -112,7 +103,7 @@ fi
|
||||
|
||||
# Install some other packages, including those needed for Python test reporting
|
||||
pip_install -r /opt/conda/requirements-ci.txt
|
||||
|
||||
pip_install numpy=="$NUMPY_VERSION"
|
||||
pip_install -U scikit-learn
|
||||
|
||||
if [ -n "$DOCS" ]; then
|
||||
|
@ -58,7 +58,8 @@ function do_cpython_build {
|
||||
if [ -e ${prefix}/bin/pip3 ] && [ ! -e ${prefix}/bin/pip ]; then
|
||||
ln -s pip3 ${prefix}/bin/pip
|
||||
fi
|
||||
${prefix}/bin/pip install wheel==0.34.2
|
||||
# install setuptools since python 3.12 is required to use distutils
|
||||
${prefix}/bin/pip install wheel==0.34.2 setuptools==68.2.2
|
||||
local abi_tag=$(${prefix}/bin/python -c "from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag; print('{0}{1}-{2}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag()))")
|
||||
ln -s ${prefix} /opt/python/${abi_tag}
|
||||
}
|
||||
|
@ -27,6 +27,17 @@ function install_cusparselt_052 {
|
||||
rm -rf tmp_cusparselt
|
||||
}
|
||||
|
||||
function install_cusparselt_062 {
|
||||
# cuSparseLt license: https://docs.nvidia.com/cuda/cusparselt/license.html
|
||||
mkdir tmp_cusparselt && pushd tmp_cusparselt
|
||||
wget -q https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-x86_64/libcusparse_lt-linux-x86_64-0.6.2.3-archive.tar.xz
|
||||
tar xf libcusparse_lt-linux-x86_64-0.6.2.3-archive.tar.xz
|
||||
cp -a libcusparse_lt-linux-x86_64-0.6.2.3-archive/include/* /usr/local/cuda/include/
|
||||
cp -a libcusparse_lt-linux-x86_64-0.6.2.3-archive/lib/* /usr/local/cuda/lib64/
|
||||
popd
|
||||
rm -rf tmp_cusparselt
|
||||
}
|
||||
|
||||
function install_118 {
|
||||
echo "Installing CUDA 11.8 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.4.0"
|
||||
rm -rf /usr/local/cuda-11.8 /usr/local/cuda
|
||||
@ -94,13 +105,13 @@ function install_121 {
|
||||
}
|
||||
|
||||
function install_124 {
|
||||
echo "Installing CUDA 12.4 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
|
||||
echo "Installing CUDA 12.4.1 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
|
||||
rm -rf /usr/local/cuda-12.4 /usr/local/cuda
|
||||
# install CUDA 12.4.0 in the same container
|
||||
wget -q https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
|
||||
chmod +x cuda_12.4.0_550.54.14_linux.run
|
||||
./cuda_12.4.0_550.54.14_linux.run --toolkit --silent
|
||||
rm -f cuda_12.4.0_550.54.14_linux.run
|
||||
# install CUDA 12.4.1 in the same container
|
||||
wget -q https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run
|
||||
chmod +x cuda_12.4.1_550.54.15_linux.run
|
||||
./cuda_12.4.1_550.54.15_linux.run --toolkit --silent
|
||||
rm -f cuda_12.4.1_550.54.15_linux.run
|
||||
rm -f /usr/local/cuda && ln -s /usr/local/cuda-12.4 /usr/local/cuda
|
||||
|
||||
# cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
|
||||
@ -121,7 +132,7 @@ function install_124 {
|
||||
cd ..
|
||||
rm -rf nccl
|
||||
|
||||
install_cusparselt_052
|
||||
install_cusparselt_062
|
||||
|
||||
ldconfig
|
||||
}
|
||||
|
@ -17,13 +17,13 @@ function install_cusparselt_052 {
|
||||
}
|
||||
|
||||
function install_124 {
|
||||
echo "Installing CUDA 12.4 and cuDNN 9.1 and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
|
||||
echo "Installing CUDA 12.4.1 and cuDNN 9.1 and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
|
||||
rm -rf /usr/local/cuda-12.4 /usr/local/cuda
|
||||
# install CUDA 12.4.0 in the same container
|
||||
wget -q https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux_sbsa.run
|
||||
chmod +x cuda_12.4.0_550.54.14_linux_sbsa.run
|
||||
./cuda_12.4.0_550.54.14_linux_sbsa.run --toolkit --silent
|
||||
rm -f cuda_12.4.0_550.54.14_linux_sbsa.run
|
||||
# install CUDA 12.4.1 in the same container
|
||||
wget -q https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux_sbsa.run
|
||||
chmod +x cuda_12.4.1_550.54.15_linux_sbsa.run
|
||||
./cuda_12.4.1_550.54.15_linux_sbsa.run --toolkit --silent
|
||||
rm -f cuda_12.4.1_550.54.15_linux_sbsa.run
|
||||
rm -f /usr/local/cuda && ln -s /usr/local/cuda-12.4 /usr/local/cuda
|
||||
|
||||
# cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
|
||||
|
25
.ci/docker/common/install_cudss.sh
Normal file
25
.ci/docker/common/install_cudss.sh
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
# cudss license: https://docs.nvidia.com/cuda/cudss/license.html
|
||||
mkdir tmp_cudss && cd tmp_cudss
|
||||
|
||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[1-4]$ ]]; then
|
||||
arch_path='sbsa'
|
||||
export TARGETARCH=${TARGETARCH:-$(uname -m)}
|
||||
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
|
||||
arch_path='x86_64'
|
||||
fi
|
||||
CUDSS_NAME="libcudss-linux-${arch_path}-0.3.0.9_cuda12-archive"
|
||||
curl --retry 3 -OLs https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-${arch_path}/${CUDSS_NAME}.tar.xz
|
||||
|
||||
# only for cuda 12
|
||||
tar xf ${CUDSS_NAME}.tar.xz
|
||||
cp -a ${CUDSS_NAME}/include/* /usr/local/cuda/include/
|
||||
cp -a ${CUDSS_NAME}/lib/* /usr/local/cuda/lib64/
|
||||
fi
|
||||
|
||||
cd ..
|
||||
rm -rf tmp_cudss
|
||||
ldconfig
|
@ -5,7 +5,15 @@ set -ex
|
||||
# cuSPARSELt license: https://docs.nvidia.com/cuda/cusparselt/license.html
|
||||
mkdir tmp_cusparselt && cd tmp_cusparselt
|
||||
|
||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[1-4]$ ]]; then
|
||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[2-4]$ ]]; then
|
||||
arch_path='sbsa'
|
||||
export TARGETARCH=${TARGETARCH:-$(uname -m)}
|
||||
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
|
||||
arch_path='x86_64'
|
||||
fi
|
||||
CUSPARSELT_NAME="libcusparse_lt-linux-${arch_path}-0.6.2.3-archive"
|
||||
curl --retry 3 -OLs https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-${arch_path}/${CUSPARSELT_NAME}.tar.xz
|
||||
elif [[ ${CUDA_VERSION:0:4} == "12.1" ]]; then
|
||||
arch_path='sbsa'
|
||||
export TARGETARCH=${TARGETARCH:-$(uname -m)}
|
||||
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
|
||||
|
@ -10,6 +10,21 @@ if [[ -z $ROCM_VERSION ]]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
IS_UBUNTU=0
|
||||
ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
|
||||
case "$ID" in
|
||||
ubuntu)
|
||||
IS_UBUNTU=1
|
||||
;;
|
||||
centos)
|
||||
IS_UBUNTU=0
|
||||
;;
|
||||
*)
|
||||
echo "Unable to determine OS..."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# To make version comparison easier, create an integer representation.
|
||||
save_IFS="$IFS"
|
||||
IFS=. ROCM_VERSION_ARRAY=(${ROCM_VERSION})
|
||||
@ -57,7 +72,9 @@ MIOPEN_CMAKE_COMMON_FLAGS="
|
||||
-DMIOPEN_BUILD_DRIVER=OFF
|
||||
"
|
||||
# Pull MIOpen repo and set DMIOPEN_EMBED_DB based on ROCm version
|
||||
if [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
|
||||
if [[ $ROCM_INT -ge 60200 ]] && [[ $ROCM_INT -lt 60300 ]]; then
|
||||
MIOPEN_BRANCH="release/rocm-rel-6.2-staging"
|
||||
elif [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
|
||||
echo "ROCm 6.1 MIOpen does not need any patches, do not build from source"
|
||||
exit 0
|
||||
elif [[ $ROCM_INT -ge 60000 ]] && [[ $ROCM_INT -lt 60100 ]]; then
|
||||
@ -90,12 +107,21 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
yum remove -y miopen-hip
|
||||
|
||||
if [[ ${IS_UBUNTU} == 1 ]]; then
|
||||
apt-get remove -y miopen-hip
|
||||
else
|
||||
yum remove -y miopen-hip
|
||||
fi
|
||||
|
||||
git clone https://github.com/ROCm/MIOpen -b ${MIOPEN_BRANCH}
|
||||
pushd MIOpen
|
||||
# remove .git to save disk space since CI runner was running out
|
||||
rm -rf .git
|
||||
# Don't build CK to save docker build time
|
||||
if [[ $ROCM_INT -ge 60200 ]]; then
|
||||
sed -i '/composable_kernel/d' requirements.txt
|
||||
fi
|
||||
# Don't build MLIR to save docker build time
|
||||
# since we are disabling MLIR backend for MIOpen anyway
|
||||
if [[ $ROCM_INT -ge 50400 ]] && [[ $ROCM_INT -lt 50500 ]]; then
|
||||
@ -108,10 +134,15 @@ cmake -P install_deps.cmake --minimum
|
||||
|
||||
# clean up since CI runner was running out of disk space
|
||||
rm -rf /tmp/*
|
||||
yum clean all
|
||||
rm -rf /var/cache/yum
|
||||
rm -rf /var/lib/yum/yumdb
|
||||
rm -rf /var/lib/yum/history
|
||||
if [[ ${IS_UBUNTU} == 1 ]]; then
|
||||
apt-get autoclean && apt-get clean
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
else
|
||||
yum clean all
|
||||
rm -rf /var/cache/yum
|
||||
rm -rf /var/lib/yum/yumdb
|
||||
rm -rf /var/lib/yum/history
|
||||
fi
|
||||
|
||||
## Build MIOpen
|
||||
mkdir -p build
|
||||
@ -128,7 +159,11 @@ make -j $(nproc) package
|
||||
# clean up since CI runner was running out of disk space
|
||||
rm -rf /usr/local/cget
|
||||
|
||||
yum install -y miopen-*.rpm
|
||||
if [[ ${IS_UBUNTU} == 1 ]]; then
|
||||
sudo dpkg -i miopen-hip*.deb
|
||||
else
|
||||
yum install -y miopen-*.rpm
|
||||
fi
|
||||
|
||||
popd
|
||||
rm -rf MIOpen
|
||||
|
20
.ci/docker/common/install_nvpl.sh
Normal file
20
.ci/docker/common/install_nvpl.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
function install_nvpl {
|
||||
|
||||
mkdir -p /opt/nvpl/lib /opt/nvpl/include
|
||||
|
||||
wget https://developer.download.nvidia.com/compute/nvpl/redist/nvpl_blas/linux-sbsa/nvpl_blas-linux-sbsa-0.3.0-archive.tar.xz
|
||||
tar xf nvpl_blas-linux-sbsa-0.3.0-archive.tar.xz
|
||||
cp -r nvpl_blas-linux-sbsa-0.3.0-archive/lib/* /opt/nvpl/lib/
|
||||
cp -r nvpl_blas-linux-sbsa-0.3.0-archive/include/* /opt/nvpl/include/
|
||||
|
||||
wget https://developer.download.nvidia.com/compute/nvpl/redist/nvpl_lapack/linux-sbsa/nvpl_lapack-linux-sbsa-0.2.3.1-archive.tar.xz
|
||||
tar xf nvpl_lapack-linux-sbsa-0.2.3.1-archive.tar.xz
|
||||
cp -r nvpl_lapack-linux-sbsa-0.2.3.1-archive/lib/* /opt/nvpl/lib/
|
||||
cp -r nvpl_lapack-linux-sbsa-0.2.3.1-archive/include/* /opt/nvpl/include/
|
||||
}
|
||||
|
||||
install_nvpl
|
@ -15,7 +15,7 @@ pip_install \
|
||||
flatbuffers==2.0 \
|
||||
mock==5.0.1 \
|
||||
ninja==1.10.2 \
|
||||
networkx==2.0 \
|
||||
networkx==2.5 \
|
||||
numpy==1.24.2
|
||||
|
||||
# ONNXRuntime should be installed before installing
|
||||
@ -30,10 +30,9 @@ pip_install \
|
||||
|
||||
pip_install coloredlogs packaging
|
||||
|
||||
pip_install onnxruntime==1.18
|
||||
pip_install onnx==1.16.0
|
||||
# pip_install "onnxscript@git+https://github.com/microsoft/onnxscript@3e869ef8ccf19b5ebd21c10d3e9c267c9a9fa729" --no-deps
|
||||
pip_install onnxscript==0.1.0.dev20240613 --no-deps
|
||||
pip_install onnxruntime==1.18.1
|
||||
pip_install onnx==1.16.2
|
||||
pip_install onnxscript==0.1.0.dev20240831 --no-deps
|
||||
# required by onnxscript
|
||||
pip_install ml_dtypes
|
||||
|
||||
|
@ -12,10 +12,7 @@ conda_reinstall() {
|
||||
as_jenkins conda install -q -n py_$ANACONDA_PYTHON_VERSION -y --force-reinstall $*
|
||||
}
|
||||
|
||||
if [ -n "${ROCM_VERSION}" ]; then
|
||||
TRITON_REPO="https://github.com/openai/triton"
|
||||
TRITON_TEXT_FILE="triton-rocm"
|
||||
elif [ -n "${XPU_VERSION}" ]; then
|
||||
if [ -n "${XPU_VERSION}" ]; then
|
||||
TRITON_REPO="https://github.com/intel/intel-xpu-backend-for-triton"
|
||||
TRITON_TEXT_FILE="triton-xpu"
|
||||
else
|
||||
@ -41,19 +38,33 @@ if [ -z "${MAX_JOBS}" ]; then
|
||||
export MAX_JOBS=$(nproc)
|
||||
fi
|
||||
|
||||
# Git checkout triton
|
||||
mkdir /var/lib/jenkins/triton
|
||||
chown -R jenkins /var/lib/jenkins/triton
|
||||
chgrp -R jenkins /var/lib/jenkins/triton
|
||||
pushd /var/lib/jenkins/
|
||||
|
||||
as_jenkins git clone ${TRITON_REPO} triton
|
||||
cd triton
|
||||
as_jenkins git checkout ${TRITON_PINNED_COMMIT}
|
||||
cd python
|
||||
|
||||
# TODO: remove patch setup.py once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
|
||||
as_jenkins sed -i -e 's/https:\/\/tritonlang.blob.core.windows.net\/llvm-builds/https:\/\/oaitriton.blob.core.windows.net\/public\/llvm-builds/g' setup.py
|
||||
|
||||
if [ -n "${UBUNTU_VERSION}" ] && [ -n "${GCC_VERSION}" ] && [[ "${GCC_VERSION}" == "7" ]]; then
|
||||
# Triton needs at least gcc-9 to build
|
||||
apt-get install -y g++-9
|
||||
|
||||
CXX=g++-9 pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
|
||||
CXX=g++-9 pip_install -e .
|
||||
elif [ -n "${UBUNTU_VERSION}" ] && [ -n "${CLANG_VERSION}" ]; then
|
||||
# Triton needs <filesystem> which surprisingly is not available with clang-9 toolchain
|
||||
add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||
apt-get install -y g++-9
|
||||
|
||||
CXX=g++-9 pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
|
||||
CXX=g++-9 pip_install -e .
|
||||
else
|
||||
pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
|
||||
pip_install -e .
|
||||
fi
|
||||
|
||||
if [ -n "${CONDA_CMAKE}" ]; then
|
||||
|
@ -16,11 +16,11 @@ function install_ubuntu() {
|
||||
|
||||
apt-get update -y
|
||||
apt-get install -y gpg-agent wget
|
||||
# To add the online network package repository for the GPU Driver LTS releases
|
||||
# To add the online network package repository for the GPU Driver
|
||||
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key \
|
||||
| gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
|
||||
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] \
|
||||
https://repositories.intel.com/gpu/ubuntu ${VERSION_CODENAME}/lts/2350 unified" \
|
||||
https://repositories.intel.com/gpu/ubuntu ${VERSION_CODENAME}${XPU_DRIVER_VERSION} unified" \
|
||||
| tee /etc/apt/sources.list.d/intel-gpu-${VERSION_CODENAME}.list
|
||||
# To add the online network network package repository for the Intel Support Packages
|
||||
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
|
||||
@ -45,9 +45,9 @@ function install_ubuntu() {
|
||||
apt-get install -y libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
|
||||
# Install Intel Support Packages
|
||||
if [ -n "$XPU_VERSION" ]; then
|
||||
apt-get install -y intel-for-pytorch-gpu-dev-${XPU_VERSION}
|
||||
apt-get install -y intel-for-pytorch-gpu-dev-${XPU_VERSION} intel-pti-dev
|
||||
else
|
||||
apt-get install -y intel-for-pytorch-gpu-dev
|
||||
apt-get install -y intel-for-pytorch-gpu-dev intel-pti-dev
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
@ -55,52 +55,6 @@ function install_ubuntu() {
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
}
|
||||
|
||||
function install_centos() {
|
||||
dnf install -y 'dnf-command(config-manager)'
|
||||
dnf config-manager --add-repo \
|
||||
https://repositories.intel.com/gpu/rhel/8.6/production/2328/unified/intel-gpu-8.6.repo
|
||||
# To add the EPEL repository needed for DKMS
|
||||
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
# https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
||||
|
||||
# Create the YUM repository file in the /temp directory as a normal user
|
||||
tee > /tmp/oneAPI.repo << EOF
|
||||
[oneAPI]
|
||||
name=Intel® oneAPI repository
|
||||
baseurl=https://yum.repos.intel.com/oneapi
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
repo_gpgcheck=1
|
||||
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
||||
EOF
|
||||
|
||||
# Move the newly created oneAPI.repo file to the YUM configuration directory /etc/yum.repos.d
|
||||
mv /tmp/oneAPI.repo /etc/yum.repos.d
|
||||
|
||||
# The xpu-smi packages
|
||||
dnf install -y flex bison xpu-smi
|
||||
# Compute and Media Runtimes
|
||||
dnf install -y \
|
||||
intel-opencl intel-media intel-mediasdk libmfxgen1 libvpl2\
|
||||
level-zero intel-level-zero-gpu mesa-dri-drivers mesa-vulkan-drivers \
|
||||
mesa-vdpau-drivers libdrm mesa-libEGL mesa-libgbm mesa-libGL \
|
||||
mesa-libxatracker libvpl-tools intel-metrics-discovery \
|
||||
intel-metrics-library intel-igc-core intel-igc-cm \
|
||||
libva libva-utils intel-gmmlib libmetee intel-gsc intel-ocloc hwinfo clinfo
|
||||
# Development packages
|
||||
dnf install -y --refresh \
|
||||
intel-igc-opencl-devel level-zero-devel intel-gsc-devel libmetee-devel \
|
||||
level-zero-devel
|
||||
# Install Intel® oneAPI Base Toolkit
|
||||
dnf install intel-basekit -y
|
||||
|
||||
# Cleanup
|
||||
dnf clean all
|
||||
rm -rf /var/cache/yum
|
||||
rm -rf /var/lib/yum/yumdb
|
||||
rm -rf /var/lib/yum/history
|
||||
}
|
||||
|
||||
function install_rhel() {
|
||||
. /etc/os-release
|
||||
if [[ "${ID}" == "rhel" ]]; then
|
||||
@ -114,9 +68,9 @@ function install_rhel() {
|
||||
fi
|
||||
|
||||
dnf install -y 'dnf-command(config-manager)'
|
||||
# To add the online network package repository for the GPU Driver LTS releases
|
||||
# To add the online network package repository for the GPU Driver
|
||||
dnf config-manager --add-repo \
|
||||
https://repositories.intel.com/gpu/rhel/${VERSION_ID}/lts/2350/unified/intel-gpu-${VERSION_ID}.repo
|
||||
https://repositories.intel.com/gpu/rhel/${VERSION_ID}${XPU_DRIVER_VERSION}/unified/intel-gpu-${VERSION_ID}.repo
|
||||
# To add the online network network package repository for the Intel Support Packages
|
||||
tee > /etc/yum.repos.d/intel-for-pytorch-gpu-dev.repo << EOF
|
||||
[intel-for-pytorch-gpu-dev]
|
||||
@ -131,7 +85,7 @@ EOF
|
||||
# The xpu-smi packages
|
||||
dnf install -y xpu-smi
|
||||
# Compute and Media Runtimes
|
||||
dnf install -y \
|
||||
dnf install --skip-broken -y \
|
||||
intel-opencl intel-media intel-mediasdk libmfxgen1 libvpl2\
|
||||
level-zero intel-level-zero-gpu mesa-dri-drivers mesa-vulkan-drivers \
|
||||
mesa-vdpau-drivers libdrm mesa-libEGL mesa-libgbm mesa-libGL \
|
||||
@ -160,9 +114,9 @@ function install_sles() {
|
||||
exit
|
||||
fi
|
||||
|
||||
# To add the online network package repository for the GPU Driver LTS releases
|
||||
# To add the online network package repository for the GPU Driver
|
||||
zypper addrepo -f -r \
|
||||
https://repositories.intel.com/gpu/sles/${VERSION_SP}/lts/2350/unified/intel-gpu-${VERSION_SP}.repo
|
||||
https://repositories.intel.com/gpu/sles/${VERSION_SP}${XPU_DRIVER_VERSION}/unified/intel-gpu-${VERSION_SP}.repo
|
||||
rpm --import https://repositories.intel.com/gpu/intel-graphics.key
|
||||
# To add the online network network package repository for the Intel Support Packages
|
||||
zypper addrepo https://yum.repos.intel.com/intel-for-pytorch-gpu-dev intel-for-pytorch-gpu-dev
|
||||
@ -181,6 +135,12 @@ function install_sles() {
|
||||
|
||||
}
|
||||
|
||||
# Default use GPU driver LTS releases
|
||||
XPU_DRIVER_VERSION="/lts/2350"
|
||||
if [[ "${XPU_DRIVER_TYPE,,}" == "rolling" ]]; then
|
||||
# Use GPU driver rolling releases
|
||||
XPU_DRIVER_VERSION=""
|
||||
fi
|
||||
|
||||
# The installation depends on the base OS
|
||||
ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
|
||||
@ -188,9 +148,6 @@ case "$ID" in
|
||||
ubuntu)
|
||||
install_ubuntu
|
||||
;;
|
||||
centos)
|
||||
install_centos
|
||||
;;
|
||||
rhel|almalinux)
|
||||
install_rhel
|
||||
;;
|
||||
|
@ -21,9 +21,8 @@ RUN sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
|
||||
RUN sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
|
||||
RUN yum install -y devtoolset-${DEVTOOLSET_VERSION}-gcc devtoolset-${DEVTOOLSET_VERSION}-gcc-c++ devtoolset-${DEVTOOLSET_VERSION}-gcc-gfortran devtoolset-${DEVTOOLSET_VERSION}-binutils
|
||||
# EPEL for cmake
|
||||
RUN wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
|
||||
rpm -ivh epel-release-latest-7.noarch.rpm && \
|
||||
rm -f epel-release-latest-7.noarch.rpm
|
||||
RUN yum --enablerepo=extras install -y epel-release
|
||||
|
||||
# cmake
|
||||
RUN yum install -y cmake3 && \
|
||||
ln -s /usr/bin/cmake3 /usr/bin/cmake
|
||||
|
@ -89,7 +89,7 @@ RUN bash ./install_rocm_magma.sh && rm install_rocm_magma.sh
|
||||
|
||||
# Install AOTriton
|
||||
COPY ./common/common_utils.sh common_utils.sh
|
||||
COPY ./common/aotriton_version.txt aotriton_version.txt
|
||||
COPY ./aotriton_version.txt aotriton_version.txt
|
||||
COPY ./common/install_aotriton.sh install_aotriton.sh
|
||||
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
|
||||
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
|
||||
|
@ -29,7 +29,7 @@ RUN bash ./install_conda.sh && rm install_conda.sh common_utils.sh /opt/conda/re
|
||||
|
||||
# Install cuda and cudnn
|
||||
ARG CUDA_VERSION
|
||||
RUN wget -q https://raw.githubusercontent.com/pytorch/builder/main/common/install_cuda.sh -O install_cuda.sh
|
||||
COPY ./common/install_cuda.sh install_cuda.sh
|
||||
RUN bash ./install_cuda.sh ${CUDA_VERSION} && rm install_cuda.sh
|
||||
ENV DESIRED_CUDA ${CUDA_VERSION}
|
||||
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:$PATH
|
||||
|
@ -29,9 +29,7 @@ RUN yum install -y devtoolset-${DEVTOOLSET_VERSION}-gcc devtoolset-${DEVTOOLSET_
|
||||
ENV PATH=/opt/rh/devtoolset-${DEVTOOLSET_VERSION}/root/usr/bin:$PATH
|
||||
ENV LD_LIBRARY_PATH=/opt/rh/devtoolset-${DEVTOOLSET_VERSION}/root/usr/lib64:/opt/rh/devtoolset-${DEVTOOLSET_VERSION}/root/usr/lib:$LD_LIBRARY_PATH
|
||||
|
||||
RUN wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
|
||||
rpm -ivh epel-release-latest-7.noarch.rpm && \
|
||||
rm -f epel-release-latest-7.noarch.rpm
|
||||
RUN yum --enablerepo=extras install -y epel-release
|
||||
|
||||
# cmake-3.18.4 from pip
|
||||
RUN yum install -y python3-pip && \
|
||||
@ -117,7 +115,8 @@ RUN yum install -y \
|
||||
yasm
|
||||
RUN yum install -y \
|
||||
https://repo.ius.io/ius-release-el7.rpm \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
||||
https://ossci-linux.s3.amazonaws.com/epel-release-7-14.noarch.rpm
|
||||
|
||||
RUN yum swap -y git git236-core
|
||||
# git236+ would refuse to run git commands in repos owned by other users
|
||||
# Which causes version check to fail, as pytorch repo is bind-mounted into the image
|
||||
@ -197,7 +196,7 @@ RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
|
||||
|
||||
# Install AOTriton
|
||||
COPY ./common/common_utils.sh common_utils.sh
|
||||
COPY ./common/aotriton_version.txt aotriton_version.txt
|
||||
COPY ./aotriton_version.txt aotriton_version.txt
|
||||
COPY ./common/install_aotriton.sh install_aotriton.sh
|
||||
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
|
||||
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
|
||||
|
@ -93,7 +93,8 @@ RUN yum install -y \
|
||||
yasm
|
||||
RUN yum install -y \
|
||||
https://repo.ius.io/ius-release-el7.rpm \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
||||
https://ossci-linux.s3.amazonaws.com/epel-release-7-14.noarch.rpm
|
||||
|
||||
RUN yum swap -y git git236-core
|
||||
# git236+ would refuse to run git commands in repos owned by other users
|
||||
# Which causes version check to fail, as pytorch repo is bind-mounted into the image
|
||||
|
@ -87,10 +87,10 @@ RUN yum install -y \
|
||||
xz \
|
||||
gcc-toolset-${DEVTOOLSET_VERSION}-toolchain \
|
||||
glibc-langpack-en
|
||||
|
||||
RUN yum install -y \
|
||||
https://repo.ius.io/ius-release-el7.rpm \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
||||
https://ossci-linux.s3.amazonaws.com/epel-release-7-14.noarch.rpm
|
||||
|
||||
RUN yum swap -y git git236-core
|
||||
# git236+ would refuse to run git commands in repos owned by other users
|
||||
# Which causes version check to fail, as pytorch repo is bind-mounted into the image
|
||||
@ -145,9 +145,13 @@ ADD ./common/install_miopen.sh install_miopen.sh
|
||||
RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
|
||||
|
||||
FROM cpu_final as xpu_final
|
||||
# XPU CD use rolling driver
|
||||
ENV XPU_DRIVER_TYPE ROLLING
|
||||
# cmake-3.28.4 from pip
|
||||
RUN python3 -m pip install --upgrade pip && \
|
||||
python3 -mpip install cmake==3.28.4
|
||||
# Install setuptools and wheel for python 3.13
|
||||
RUN /opt/python/cp313-cp313/bin/python -m pip install setuptools wheel
|
||||
ADD ./common/install_xpu.sh install_xpu.sh
|
||||
RUN bash ./install_xpu.sh && rm install_xpu.sh
|
||||
RUN pushd /opt/_internal && tar -xJf static-libs-for-embedding-only.tar.xz && popd
|
||||
|
@ -75,17 +75,17 @@ ARG BASE_CUDA_VERSION
|
||||
ADD ./common/install_magma.sh install_magma.sh
|
||||
RUN bash ./install_magma.sh ${BASE_CUDA_VERSION} && rm install_magma.sh
|
||||
|
||||
FROM base as openblas
|
||||
# Install openblas
|
||||
ADD ./common/install_openblas.sh install_openblas.sh
|
||||
RUN bash ./install_openblas.sh && rm install_openblas.sh
|
||||
FROM base as nvpl
|
||||
# Install nvpl
|
||||
ADD ./common/install_nvpl.sh install_nvpl.sh
|
||||
RUN bash ./install_nvpl.sh && rm install_nvpl.sh
|
||||
|
||||
FROM final as cuda_final
|
||||
ARG BASE_CUDA_VERSION
|
||||
RUN rm -rf /usr/local/cuda-${BASE_CUDA_VERSION}
|
||||
COPY --from=cuda /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda-${BASE_CUDA_VERSION}
|
||||
COPY --from=magma /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda-${BASE_CUDA_VERSION}
|
||||
COPY --from=openblas /opt/OpenBLAS/ /opt/OpenBLAS/
|
||||
COPY --from=nvpl /opt/nvpl/lib/ /usr/local/lib/
|
||||
COPY --from=nvpl /opt/nvpl/include/ /usr/local/include/
|
||||
RUN ln -sf /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda
|
||||
ENV PATH=/usr/local/cuda/bin:$PATH
|
||||
ENV LD_LIBRARY_PATH=/opt/OpenBLAS/lib:$LD_LIBRARY_PATH
|
||||
|
@ -135,7 +135,7 @@ fi
|
||||
)
|
||||
|
||||
GITHUB_REF=${GITHUB_REF:-$(git symbolic-ref -q HEAD || git describe --tags --exact-match)}
|
||||
GIT_BRANCH_NAME=${GITHUB_REF##*/}
|
||||
GIT_BRANCH_NAME="2.5"
|
||||
GIT_COMMIT_SHA=${GITHUB_SHA:-$(git rev-parse HEAD)}
|
||||
DOCKER_IMAGE_BRANCH_TAG=${DOCKER_IMAGE}-${GIT_BRANCH_NAME}
|
||||
DOCKER_IMAGE_SHA_TAG=${DOCKER_IMAGE}-${GIT_COMMIT_SHA}
|
||||
|
@ -30,9 +30,14 @@ dill==0.3.7
|
||||
#Pinned versions: 0.3.7
|
||||
#test that import: dynamo/test_replay_record.py test_dataloader.py test_datapipe.py test_serialization.py
|
||||
|
||||
expecttest==0.1.6
|
||||
expecttest==0.2.1
|
||||
#Description: method for writing tests where test framework auto populates
|
||||
# the expected output based on previous runs
|
||||
#Pinned versions: 0.2.1
|
||||
#test that import:
|
||||
|
||||
fbscribelogger==0.1.6
|
||||
#Description: write to scribe from authenticated jobs on CI
|
||||
#Pinned versions: 0.1.6
|
||||
#test that import:
|
||||
|
||||
@ -104,7 +109,7 @@ networkx==2.8.8
|
||||
#test that import: run_test.py, test_cpp_extensions_aot.py,test_determination.py
|
||||
|
||||
numba==0.49.0 ; python_version < "3.9"
|
||||
numba==0.54.1 ; python_version == "3.9"
|
||||
numba==0.55.2 ; python_version == "3.9"
|
||||
numba==0.55.2 ; python_version == "3.10"
|
||||
#Description: Just-In-Time Compiler for Numerical Functions
|
||||
#Pinned versions: 0.54.1, 0.49.0, <=0.49.1
|
||||
@ -218,7 +223,7 @@ pygments==2.15.0
|
||||
#test that import:
|
||||
|
||||
scikit-image==0.19.3 ; python_version < "3.10"
|
||||
scikit-image==0.20.0 ; python_version >= "3.10"
|
||||
scikit-image==0.22.0 ; python_version >= "3.10"
|
||||
#Description: image processing routines
|
||||
#Pinned versions:
|
||||
#test that import: test_nn.py
|
||||
@ -269,6 +274,10 @@ lintrunner==0.12.5
|
||||
#Pinned versions: 0.12.5
|
||||
#test that import:
|
||||
|
||||
redis>=4.0.0
|
||||
#Description: redis database
|
||||
#test that import: anything that tests OSS caching/mocking (inductor/test_codecache.py, inductor/test_max_autotune.py)
|
||||
|
||||
rockset==1.0.3
|
||||
#Description: queries Rockset
|
||||
#Pinned versions: 1.0.3
|
||||
@ -312,3 +321,19 @@ lxml==5.0.0
|
||||
# Python-3.9 binaries
|
||||
|
||||
PyGithub==2.3.0
|
||||
|
||||
sympy==1.12.1 ; python_version == "3.8"
|
||||
sympy==1.13.1 ; python_version >= "3.9"
|
||||
#Description: Required by coremltools, also pinned in .github/requirements/pip-requirements-macOS.txt
|
||||
#Pinned versions:
|
||||
#test that import:
|
||||
|
||||
onnx==1.16.1
|
||||
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
|
||||
#Pinned versions:
|
||||
#test that import:
|
||||
|
||||
onnxscript==0.1.0.dev20240817
|
||||
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
|
||||
#Pinned versions:
|
||||
#test that import:
|
||||
|
@ -1 +1 @@
|
||||
3.0.0
|
||||
3.1.0
|
||||
|
@ -156,6 +156,12 @@ COPY ./common/install_cusparselt.sh install_cusparselt.sh
|
||||
RUN bash install_cusparselt.sh
|
||||
RUN rm install_cusparselt.sh
|
||||
|
||||
# Install CUDSS
|
||||
ARG CUDA_VERSION
|
||||
COPY ./common/install_cudss.sh install_cudss.sh
|
||||
RUN bash install_cudss.sh
|
||||
RUN rm install_cudss.sh
|
||||
|
||||
# Delete /usr/local/cuda-11.X/cuda-11.X symlinks
|
||||
RUN if [ -h /usr/local/cuda-11.6/cuda-11.6 ]; then rm /usr/local/cuda-11.6/cuda-11.6; fi
|
||||
RUN if [ -h /usr/local/cuda-11.7/cuda-11.7 ]; then rm /usr/local/cuda-11.7/cuda-11.7; fi
|
||||
|
@ -68,6 +68,8 @@ RUN rm install_rocm.sh
|
||||
COPY ./common/install_rocm_magma.sh install_rocm_magma.sh
|
||||
RUN bash ./install_rocm_magma.sh
|
||||
RUN rm install_rocm_magma.sh
|
||||
ADD ./common/install_miopen.sh install_miopen.sh
|
||||
RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
|
||||
ENV ROCM_PATH /opt/rocm
|
||||
ENV PATH /opt/rocm/bin:$PATH
|
||||
ENV PATH /opt/rocm/hcc/bin:$PATH
|
||||
@ -100,10 +102,10 @@ ARG TRITON
|
||||
# try to reach out to S3, which docker build runners don't have access
|
||||
COPY ./common/install_triton.sh install_triton.sh
|
||||
COPY ./common/common_utils.sh common_utils.sh
|
||||
COPY ci_commit_pins/triton-rocm.txt triton-rocm.txt
|
||||
COPY ci_commit_pins/triton.txt triton.txt
|
||||
COPY triton_version.txt triton_version.txt
|
||||
RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
|
||||
RUN rm install_triton.sh common_utils.sh triton-rocm.txt triton_version.txt
|
||||
RUN rm install_triton.sh common_utils.sh triton.txt triton_version.txt
|
||||
|
||||
# Install AOTriton
|
||||
COPY ./aotriton_version.txt aotriton_version.txt
|
||||
@ -121,5 +123,8 @@ RUN bash ./install_cache.sh && rm install_cache.sh
|
||||
ARG BUILD_ENVIRONMENT
|
||||
ENV BUILD_ENVIRONMENT ${BUILD_ENVIRONMENT}
|
||||
|
||||
# Install LLVM dev version (Defined in the pytorch/builder github repository)
|
||||
COPY --from=pytorch/llvm:9.0.1 /opt/llvm /opt/llvm
|
||||
|
||||
USER jenkins
|
||||
CMD ["bash"]
|
||||
|
@ -30,6 +30,7 @@ RUN bash ./install_docs_reqs.sh && rm install_docs_reqs.sh
|
||||
ARG ANACONDA_PYTHON_VERSION
|
||||
ARG CONDA_CMAKE
|
||||
ARG DOCS
|
||||
ARG BUILD_ENVIRONMENT
|
||||
ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
|
||||
ENV PATH /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/bin:/opt/conda/bin:$PATH
|
||||
ENV DOCS=$DOCS
|
||||
|
@ -50,7 +50,7 @@ RUN bash ./install_lcov.sh && rm install_lcov.sh
|
||||
|
||||
# Install cuda and cudnn
|
||||
ARG CUDA_VERSION
|
||||
RUN wget -q https://raw.githubusercontent.com/pytorch/builder/main/common/install_cuda.sh -O install_cuda.sh
|
||||
COPY ./common/install_cuda.sh install_cuda.sh
|
||||
RUN bash ./install_cuda.sh ${CUDA_VERSION} && rm install_cuda.sh
|
||||
ENV DESIRED_CUDA ${CUDA_VERSION}
|
||||
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:$PATH
|
||||
|
@ -49,13 +49,8 @@ if [[ ${BUILD_ENVIRONMENT} == *"parallelnative"* ]]; then
|
||||
fi
|
||||
|
||||
# Enable LLVM dependency for TensorExpr testing
|
||||
if [[ "$BUILD_ENVIRONMENT" == *rocm* ]]; then
|
||||
export USE_LLVM=/opt/rocm/llvm
|
||||
export LLVM_DIR=/opt/rocm/llvm/lib/cmake/llvm
|
||||
else
|
||||
export USE_LLVM=/opt/llvm
|
||||
export LLVM_DIR=/opt/llvm/lib/cmake/llvm
|
||||
fi
|
||||
export USE_LLVM=/opt/llvm
|
||||
export LLVM_DIR=/opt/llvm/lib/cmake/llvm
|
||||
|
||||
if [[ "$BUILD_ENVIRONMENT" == *executorch* ]]; then
|
||||
# To build test_edge_op_registration
|
||||
@ -176,7 +171,8 @@ fi
|
||||
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source /opt/intel/oneapi/compiler/latest/env/vars.sh
|
||||
export USE_XPU=1
|
||||
# XPU kineto feature dependencies are not fully ready, disable kineto build as temp WA
|
||||
export USE_KINETO=0
|
||||
fi
|
||||
|
||||
# sccache will fail for CUDA builds if all cores are used for compiling
|
||||
@ -284,9 +280,8 @@ else
|
||||
if [[ "$BUILD_ENVIRONMENT" != *rocm* &&
|
||||
"$BUILD_ENVIRONMENT" != *xla* ]]; then
|
||||
if [[ "$BUILD_ENVIRONMENT" != *py3.8* ]]; then
|
||||
# Install numpy-2.0 release candidate for builds
|
||||
# Which should be backward compatible with Numpy-1.X
|
||||
python -mpip install --pre numpy==2.0.0rc1
|
||||
# Install numpy-2.0.2 for builds which are backward compatible with 1.X
|
||||
python -mpip install --pre numpy==2.0.2
|
||||
fi
|
||||
|
||||
WERROR=1 python setup.py clean
|
||||
|
@ -179,7 +179,7 @@ function install_torchvision() {
|
||||
}
|
||||
|
||||
function install_tlparse() {
|
||||
pip_install --user "tlparse==0.3.7"
|
||||
pip_install --user "tlparse==0.3.25"
|
||||
PATH="$(python -m site --user-base)/bin:$PATH"
|
||||
}
|
||||
|
||||
@ -198,7 +198,7 @@ function install_torchrec_and_fbgemm() {
|
||||
|
||||
function clone_pytorch_xla() {
|
||||
if [[ ! -d ./xla ]]; then
|
||||
git clone --recursive --quiet https://github.com/pytorch/xla.git
|
||||
git clone --recursive -b r2.5 https://github.com/pytorch/xla.git
|
||||
pushd xla
|
||||
# pin the xla hash so that we don't get broken by changes to xla
|
||||
git checkout "$(cat ../.github/ci_commit_pins/xla.txt)"
|
||||
|
@ -44,19 +44,15 @@ time python test/run_test.py --verbose -i distributed/_tensor/test_dtensor_compi
|
||||
time python test/run_test.py --verbose -i distributed/test_device_mesh
|
||||
|
||||
# DTensor/TP tests
|
||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_ddp_2d_parallel
|
||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_fsdp_2d_parallel
|
||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_tp_examples
|
||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_tp_random_state
|
||||
|
||||
# FSDP2 tests
|
||||
time python test/run_test.py --verbose -i distributed/_composable/fsdp/test_fully_shard_training -- -k test_2d_mlp_with_nd_mesh
|
||||
|
||||
# Pipelining composability tests
|
||||
time python test/run_test.py --verbose -i distributed/pipelining/test_composability.py
|
||||
|
||||
# ND composability tests
|
||||
time python test/run_test.py --verbose -i distributed/_composable/test_composability/test_2d_composability
|
||||
time python test/run_test.py --verbose -i distributed/_composable/test_composability/test_pp_composability
|
||||
|
||||
# Other tests
|
||||
time python test/run_test.py --verbose -i test_cuda_primary_ctx
|
||||
|
@ -6,6 +6,9 @@
|
||||
|
||||
set -ex
|
||||
|
||||
# Suppress ANSI color escape sequences
|
||||
export TERM=vt100
|
||||
|
||||
# shellcheck source=./common.sh
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
||||
|
||||
@ -166,7 +169,7 @@ fi
|
||||
|
||||
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
||||
# Source Intel oneAPI envrioment script to enable xpu runtime related libraries
|
||||
# refer to https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2024-0/use-the-setvars-and-oneapi-vars-scripts-with-linux.html
|
||||
# refer to https://www.intel.com/content/www/us/en/developer/articles/tool/pytorch-prerequisites-for-intel-gpu/2-5.html
|
||||
# shellcheck disable=SC1091
|
||||
source /opt/intel/oneapi/compiler/latest/env/vars.sh
|
||||
# Check XPU status before testing
|
||||
@ -316,7 +319,6 @@ test_inductor_distributed() {
|
||||
python test/run_test.py -i inductor/test_aot_inductor.py -k test_replicate_on_devices --verbose
|
||||
python test/run_test.py -i distributed/test_c10d_functional_native.py --verbose
|
||||
python test/run_test.py -i distributed/_tensor/test_dtensor_compile.py --verbose
|
||||
python test/run_test.py -i distributed/tensor/parallel/test_fsdp_2d_parallel.py --verbose
|
||||
python test/run_test.py -i distributed/tensor/parallel/test_micro_pipeline_tp.py --verbose
|
||||
python test/run_test.py -i distributed/_composable/fsdp/test_fully_shard_comm.py --verbose
|
||||
python test/run_test.py -i distributed/_composable/fsdp/test_fully_shard_training.py -k test_train_parity_multi_group --verbose
|
||||
@ -359,10 +361,12 @@ test_inductor_shard() {
|
||||
test_inductor_aoti() {
|
||||
# docker build uses bdist_wheel which does not work with test_aot_inductor
|
||||
# TODO: need a faster way to build
|
||||
if [[ "$BUILD_ENVIRONMENT" != *rocm* ]]; then
|
||||
BUILD_AOT_INDUCTOR_TEST=1 python setup.py develop
|
||||
CPP_TESTS_DIR="${BUILD_BIN_DIR}" LD_LIBRARY_PATH="${TORCH_LIB_DIR}" python test/run_test.py --cpp --verbose -i cpp/test_aoti_abi_check cpp/test_aoti_inference
|
||||
if [[ "$BUILD_ENVIRONMENT" == *rocm* ]]; then
|
||||
# We need to hipify before building again
|
||||
python3 tools/amd_build/build_amd.py
|
||||
fi
|
||||
BUILD_AOT_INDUCTOR_TEST=1 python setup.py develop
|
||||
CPP_TESTS_DIR="${BUILD_BIN_DIR}" LD_LIBRARY_PATH="${TORCH_LIB_DIR}" python test/run_test.py --cpp --verbose -i cpp/test_aoti_abi_check cpp/test_aoti_inference
|
||||
}
|
||||
|
||||
test_inductor_cpp_wrapper_abi_compatible() {
|
||||
@ -391,7 +395,22 @@ test_inductor_cpp_wrapper_abi_compatible() {
|
||||
# .github/workflows/inductor-perf-test-nightly.yml
|
||||
DYNAMO_BENCHMARK_FLAGS=()
|
||||
|
||||
if [[ "${TEST_CONFIG}" == *dynamo_eager* ]]; then
|
||||
pr_time_benchmarks() {
|
||||
|
||||
pip_install --user "fbscribelogger"
|
||||
|
||||
TEST_REPORTS_DIR=$(pwd)/test/test-reports
|
||||
mkdir -p "$TEST_REPORTS_DIR"
|
||||
PYTHONPATH=$(pwd)/benchmarks/dynamo/pr_time_benchmarks source benchmarks/dynamo/pr_time_benchmarks/benchmark_runner.sh "$TEST_REPORTS_DIR/pr_time_benchmarks_after.txt" "benchmarks/dynamo/pr_time_benchmarks/benchmarks"
|
||||
echo "benchmark results on current PR: "
|
||||
cat "$TEST_REPORTS_DIR/pr_time_benchmarks_after.txt"
|
||||
|
||||
}
|
||||
|
||||
if [[ "${TEST_CONFIG}" == *pr_time_benchmarks* ]]; then
|
||||
pr_time_benchmarks
|
||||
exit 0
|
||||
elif [[ "${TEST_CONFIG}" == *dynamo_eager* ]]; then
|
||||
DYNAMO_BENCHMARK_FLAGS+=(--backend eager)
|
||||
elif [[ "${TEST_CONFIG}" == *aot_eager* ]]; then
|
||||
DYNAMO_BENCHMARK_FLAGS+=(--backend aot_eager)
|
||||
@ -487,6 +506,12 @@ test_perf_for_dashboard() {
|
||||
--output "$TEST_REPORTS_DIR/${backend}_with_cudagraphs_freezing_autotune_${suite}_${dtype}_${mode}_${device}_${target}.csv"
|
||||
fi
|
||||
if [[ "$DASHBOARD_TAG" == *aotinductor-true* ]] && [[ "$mode" == "inference" ]]; then
|
||||
if [[ "$target" == "accuracy" ]]; then
|
||||
# Also collect Export pass rate and display as a separate row
|
||||
$TASKSET python "benchmarks/dynamo/$suite.py" \
|
||||
"${target_flag[@]}" --"$mode" --"$dtype" --export --disable-cudagraphs "$@" \
|
||||
--output "$TEST_REPORTS_DIR/${backend}_export_${suite}_${dtype}_${mode}_${device}_${target}.csv"
|
||||
fi
|
||||
TORCHINDUCTOR_ABI_COMPATIBLE=1 $TASKSET python "benchmarks/dynamo/$suite.py" \
|
||||
"${target_flag[@]}" --"$mode" --"$dtype" --export-aot-inductor --disable-cudagraphs "$@" \
|
||||
--output "$TEST_REPORTS_DIR/${backend}_aot_inductor_${suite}_${dtype}_${mode}_${device}_${target}.csv"
|
||||
@ -550,7 +575,10 @@ test_single_dynamo_benchmark() {
|
||||
fi
|
||||
|
||||
if [[ "${TEST_CONFIG}" == *_avx2* ]]; then
|
||||
TEST_CONFIG=${TEST_CONFIG::-5}
|
||||
TEST_CONFIG=${TEST_CONFIG//_avx2/}
|
||||
fi
|
||||
if [[ "${TEST_CONFIG}" == *_avx512* ]]; then
|
||||
TEST_CONFIG=${TEST_CONFIG//_avx512/}
|
||||
fi
|
||||
python "benchmarks/dynamo/$suite.py" \
|
||||
--ci --accuracy --timing --explain \
|
||||
@ -568,6 +596,9 @@ test_single_dynamo_benchmark() {
|
||||
|
||||
test_inductor_micro_benchmark() {
|
||||
TEST_REPORTS_DIR=$(pwd)/test/test-reports
|
||||
if [[ "${TEST_CONFIG}" == *cpu* ]]; then
|
||||
test_inductor_set_cpu_affinity
|
||||
fi
|
||||
python benchmarks/gpt_fast/benchmark.py --output "${TEST_REPORTS_DIR}/gpt_fast_benchmark.csv"
|
||||
}
|
||||
|
||||
@ -637,8 +668,7 @@ test_inductor_torchbench_smoketest_perf() {
|
||||
# https://github.com/pytorch/pytorch/actions/runs/7158691360/job/19491437314,
|
||||
# and thus we lower its threshold to reduce flakiness. If this continues to be a problem,
|
||||
# we switch to use some other model.
|
||||
# lowering threshold from 4.9 to 4.7 for cu124. Will bump it up after cuda 12.4.0->12.4.1 update
|
||||
python benchmarks/dynamo/check_perf_csv.py -f "$TEST_REPORTS_DIR/inductor_inference_smoketest.csv" -t 4.7
|
||||
python benchmarks/dynamo/check_perf_csv.py -f "$TEST_REPORTS_DIR/inductor_inference_smoketest.csv" -t 4.9
|
||||
|
||||
# Check memory compression ratio for a few models
|
||||
for test in hf_Albert timm_vision_transformer; do
|
||||
@ -662,7 +692,7 @@ test_inductor_torchbench_smoketest_perf() {
|
||||
}
|
||||
|
||||
test_inductor_get_core_number() {
|
||||
if [[ "${TEST_CONFIG}" == *aarch64 ]]; then
|
||||
if [[ "${TEST_CONFIG}" == *aarch64* ]]; then
|
||||
echo "$(($(lscpu | grep 'Cluster(s):' | awk '{print $2}') * $(lscpu | grep 'Core(s) per cluster:' | awk '{print $4}')))"
|
||||
else
|
||||
echo "$(($(lscpu | grep 'Socket(s):' | awk '{print $2}') * $(lscpu | grep 'Core(s) per socket:' | awk '{print $4}')))"
|
||||
@ -672,11 +702,16 @@ test_inductor_get_core_number() {
|
||||
test_inductor_set_cpu_affinity(){
|
||||
#set jemalloc
|
||||
JEMALLOC_LIB="$(find /usr/lib -name libjemalloc.so.2)"
|
||||
IOMP_LIB="$(dirname "$(which python)")/../lib/libiomp5.so"
|
||||
export LD_PRELOAD="$JEMALLOC_LIB":"$IOMP_LIB":"$LD_PRELOAD"
|
||||
export LD_PRELOAD="$JEMALLOC_LIB":"$LD_PRELOAD"
|
||||
export MALLOC_CONF="oversize_threshold:1,background_thread:true,metadata_thp:auto,dirty_decay_ms:-1,muzzy_decay_ms:-1"
|
||||
export KMP_AFFINITY=granularity=fine,compact,1,0
|
||||
export KMP_BLOCKTIME=1
|
||||
|
||||
if [[ "${TEST_CONFIG}" != *aarch64* ]]; then
|
||||
# Use Intel OpenMP for x86
|
||||
IOMP_LIB="$(dirname "$(which python)")/../lib/libiomp5.so"
|
||||
export LD_PRELOAD="$IOMP_LIB":"$LD_PRELOAD"
|
||||
export KMP_AFFINITY=granularity=fine,compact,1,0
|
||||
export KMP_BLOCKTIME=1
|
||||
fi
|
||||
cores=$(test_inductor_get_core_number)
|
||||
export OMP_NUM_THREADS=$cores
|
||||
end_core=$((cores-1))
|
||||
@ -694,7 +729,7 @@ test_inductor_torchbench_cpu_smoketest_perf(){
|
||||
do
|
||||
local model_name=${model_cfg[0]}
|
||||
local data_type=${model_cfg[2]}
|
||||
# local speedup_target=${model_cfg[5]}
|
||||
local speedup_target=${model_cfg[5]}
|
||||
local backend=${model_cfg[1]}
|
||||
if [[ ${model_cfg[4]} == "cpp" ]]; then
|
||||
export TORCHINDUCTOR_CPP_WRAPPER=1
|
||||
@ -714,8 +749,7 @@ test_inductor_torchbench_cpu_smoketest_perf(){
|
||||
fi
|
||||
cat "$output_name"
|
||||
# The threshold value needs to be actively maintained to make this check useful.
|
||||
# TODO: re-enable this after https://github.com/pytorch/pytorch/pull/131812 lands
|
||||
# python benchmarks/dynamo/check_perf_csv.py -f "$output_name" -t "$speedup_target"
|
||||
python benchmarks/dynamo/check_perf_csv.py -f "$output_name" -t "$speedup_target"
|
||||
done
|
||||
|
||||
# Add a few ABI-compatible accuracy tests for CPU. These can be removed once we turn on ABI-compatible as default.
|
||||
@ -1041,11 +1075,113 @@ test_xla() {
|
||||
assert_git_not_dirty
|
||||
}
|
||||
|
||||
function check_public_api_test_fails {
|
||||
test_name=$1
|
||||
invalid_item_name=$2
|
||||
invalid_item_desc=$3
|
||||
|
||||
echo "Running public API test '${test_name}'..."
|
||||
test_output=$(python test/test_public_bindings.py -k "${test_name}" 2>&1) && ret=$? || ret=$?
|
||||
|
||||
# Ensure test fails correctly.
|
||||
if [ "$ret" -eq 0 ]; then
|
||||
cat << EOF
|
||||
Expected the public API test '${test_name}' to fail after introducing
|
||||
${invalid_item_desc}, but it succeeded! Check test/test_public_bindings.py
|
||||
for any changes that may have broken the test.
|
||||
EOF
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Ensure invalid item is in the test output.
|
||||
echo "${test_output}" | grep -q "${invalid_item_name}" && ret=$? || ret=$?
|
||||
|
||||
if [ $ret -ne 0 ]; then
|
||||
cat << EOF
|
||||
Expected the public API test '${test_name}' to identify ${invalid_item_desc}, but
|
||||
it didn't! It's possible the test may not have run. Check test/test_public_bindings.py
|
||||
for any changes that may have broken the test.
|
||||
EOF
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Success! '${test_name}' identified ${invalid_item_desc} ${invalid_item_name}."
|
||||
return 0
|
||||
}
|
||||
|
||||
# Do NOT run this test before any other tests, like test_python_shard, etc.
|
||||
# Because this function uninstalls the torch built from branch and installs
|
||||
# the torch built on its base commit.
|
||||
test_forward_backward_compatibility() {
|
||||
set -x
|
||||
|
||||
# First, validate public API tests in the torch built from branch.
|
||||
# Step 1. Make sure the public API test "test_correct_module_names" fails when a new file
|
||||
# introduces an invalid public API function.
|
||||
new_filename=$(mktemp XXXXXXXX.py -p "${TORCH_INSTALL_DIR}")
|
||||
|
||||
BAD_PUBLIC_FUNC=$(
|
||||
cat << 'EOF'
|
||||
def new_public_func():
|
||||
pass
|
||||
|
||||
# valid public API functions have __module__ set correctly
|
||||
new_public_func.__module__ = None
|
||||
EOF
|
||||
)
|
||||
|
||||
echo "${BAD_PUBLIC_FUNC}" >> "${new_filename}"
|
||||
invalid_api="torch.$(basename -s '.py' "${new_filename}").new_public_func"
|
||||
echo "Created an invalid public API function ${invalid_api}..."
|
||||
|
||||
check_public_api_test_fails \
|
||||
"test_correct_module_names" \
|
||||
"${invalid_api}" \
|
||||
"an invalid public API function" && ret=$? || ret=$?
|
||||
|
||||
rm -v "${new_filename}"
|
||||
|
||||
if [ "$ret" -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Step 2. Make sure that the public API test "test_correct_module_names" fails when an existing
|
||||
# file is modified to introduce an invalid public API function.
|
||||
EXISTING_FILEPATH="${TORCH_INSTALL_DIR}/nn/parameter.py"
|
||||
cp -v "${EXISTING_FILEPATH}" "${EXISTING_FILEPATH}.orig"
|
||||
echo "${BAD_PUBLIC_FUNC}" >> "${EXISTING_FILEPATH}"
|
||||
invalid_api="torch.nn.parameter.new_public_func"
|
||||
echo "Appended an invalid public API function to existing file ${EXISTING_FILEPATH}..."
|
||||
|
||||
check_public_api_test_fails \
|
||||
"test_correct_module_names" \
|
||||
"${invalid_api}" \
|
||||
"an invalid public API function" && ret=$? || ret=$?
|
||||
|
||||
mv -v "${EXISTING_FILEPATH}.orig" "${EXISTING_FILEPATH}"
|
||||
|
||||
if [ "$ret" -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Step 3. Make sure that the public API test "test_modules_can_be_imported" fails when a module
|
||||
# cannot be imported.
|
||||
new_module_dir=$(mktemp XXXXXXXX -d -p "${TORCH_INSTALL_DIR}")
|
||||
echo "invalid syntax garbage" > "${new_module_dir}/__init__.py"
|
||||
invalid_module_name="torch.$(basename "${new_module_dir}")"
|
||||
|
||||
check_public_api_test_fails \
|
||||
"test_modules_can_be_imported" \
|
||||
"${invalid_module_name}" \
|
||||
"a non-importable module" && ret=$? || ret=$?
|
||||
|
||||
rm -rv "${new_module_dir}"
|
||||
|
||||
if [ "$ret" -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Next, build torch from the merge base.
|
||||
REPO_DIR=$(pwd)
|
||||
if [[ "${BASE_SHA}" == "${SHA1}" ]]; then
|
||||
echo "On trunk, we should compare schemas with torch built from the parent commit"
|
||||
@ -1323,9 +1459,9 @@ elif [[ "${TEST_CONFIG}" == *torchbench* ]]; then
|
||||
checkout_install_torchbench hf_Bert hf_Albert nanogpt timm_vision_transformer
|
||||
PYTHONPATH=$(pwd)/torchbench test_inductor_torchbench_smoketest_perf
|
||||
elif [[ "${TEST_CONFIG}" == *inductor_torchbench_cpu_smoketest_perf* ]]; then
|
||||
checkout_install_torchbench timm_vision_transformer phlippe_densenet basic_gnn_gcn \
|
||||
checkout_install_torchbench timm_vision_transformer phlippe_densenet basic_gnn_edgecnn \
|
||||
llama_v2_7b_16h resnet50 timm_efficientnet mobilenet_v3_large timm_resnest \
|
||||
shufflenet_v2_x1_0 hf_GPT2 yolov3 mobilenet_v2 resnext50_32x4d hf_T5_base
|
||||
functorch_maml_omniglot yolov3 mobilenet_v2 resnext50_32x4d densenet121 mnasnet1_0
|
||||
PYTHONPATH=$(pwd)/torchbench test_inductor_torchbench_cpu_smoketest_perf
|
||||
elif [[ "${TEST_CONFIG}" == *torchbench_gcp_smoketest* ]]; then
|
||||
checkout_install_torchbench
|
||||
@ -1346,9 +1482,7 @@ elif [[ "${TEST_CONFIG}" == *inductor* ]]; then
|
||||
install_torchvision
|
||||
test_inductor_shard "${SHARD_NUMBER}"
|
||||
if [[ "${SHARD_NUMBER}" == 1 ]]; then
|
||||
if [[ "${BUILD_ENVIRONMENT}" != linux-jammy-py3.8-gcc11-build ]]; then
|
||||
# Temporarily skip test_inductor_aoti due to https://github.com/pytorch/pytorch/issues/130311
|
||||
test_inductor_aoti
|
||||
if [[ "${BUILD_ENVIRONMENT}" != linux-jammy-py3.9-gcc11-build ]]; then
|
||||
test_inductor_distributed
|
||||
fi
|
||||
fi
|
||||
|
@ -24,6 +24,12 @@ call %INSTALLER_DIR%\install_sccache.bat
|
||||
if errorlevel 1 goto fail
|
||||
if not errorlevel 0 goto fail
|
||||
|
||||
if "%USE_XPU%"=="1" (
|
||||
:: Install xpu support packages
|
||||
call %INSTALLER_DIR%\install_xpu.bat
|
||||
if errorlevel 1 exit /b 1
|
||||
)
|
||||
|
||||
:: Miniconda has been installed as part of the Windows AMI with all the dependencies.
|
||||
:: We just need to activate it here
|
||||
call %INSTALLER_DIR%\activate_miniconda3.bat
|
||||
@ -43,6 +49,16 @@ if "%VC_VERSION%" == "" (
|
||||
)
|
||||
if errorlevel 1 goto fail
|
||||
if not errorlevel 0 goto fail
|
||||
|
||||
if "%USE_XPU%"=="1" (
|
||||
:: Activate xpu environment - VS env is required for xpu
|
||||
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
|
||||
if errorlevel 1 exit /b 1
|
||||
:: Reduce build time. Only have MTL self-hosted runner now
|
||||
SET TORCH_XPU_ARCH_LIST=xe-lpg
|
||||
SET USE_KINETO=0
|
||||
)
|
||||
|
||||
@echo on
|
||||
popd
|
||||
|
||||
@ -65,13 +81,6 @@ set CUDA_PATH_V%VERSION_SUFFIX%=%CUDA_PATH%
|
||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
|
||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
||||
set CUDNN_ROOT_DIR=%CUDA_PATH%
|
||||
set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt
|
||||
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
|
||||
|
||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
|
||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
||||
set CUDNN_ROOT_DIR=%CUDA_PATH%
|
||||
set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt
|
||||
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
|
||||
|
||||
:cuda_build_end
|
||||
|
@ -0,0 +1,91 @@
|
||||
@echo on
|
||||
REM Description: Install Intel Support Packages on Windows
|
||||
REM BKM reference: https://www.intel.com/content/www/us/en/developer/articles/tool/pytorch-prerequisites-for-intel-gpu/2-5.html
|
||||
|
||||
set XPU_INSTALL_MODE=%~1
|
||||
if "%XPU_INSTALL_MODE%"=="" goto xpu_bundle_install_start
|
||||
if "%XPU_INSTALL_MODE%"=="bundle" goto xpu_bundle_install_start
|
||||
if "%XPU_INSTALL_MODE%"=="driver" goto xpu_driver_install_start
|
||||
if "%XPU_INSTALL_MODE%"=="all" goto xpu_driver_install_start
|
||||
|
||||
:arg_error
|
||||
|
||||
echo Illegal XPU installation mode. The value can be "bundle"/"driver"/"all"
|
||||
echo If keep the value as space, will use default "bundle" mode
|
||||
exit /b 1
|
||||
|
||||
:xpu_driver_install_start
|
||||
:: TODO Need more testing for driver installation
|
||||
set XPU_DRIVER_LINK=https://downloadmirror.intel.com/830975/gfx_win_101.5972.exe
|
||||
curl -o xpu_driver.exe --retry 3 --retry-all-errors -k %XPU_DRIVER_LINK%
|
||||
echo "XPU Driver installing..."
|
||||
start /wait "Intel XPU Driver Installer" "xpu_driver.exe"
|
||||
if errorlevel 1 exit /b 1
|
||||
del xpu_driver.exe
|
||||
if "%XPU_INSTALL_MODE%"=="driver" goto xpu_install_end
|
||||
|
||||
:xpu_bundle_install_start
|
||||
|
||||
set XPU_BUNDLE_PARENT_DIR=C:\Program Files (x86)\Intel\oneAPI
|
||||
set XPU_BUNDLE_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/9d1a91e2-e8b8-40a5-8c7f-5db768a6a60c/w_intel-for-pytorch-gpu-dev_p_0.5.3.37_offline.exe
|
||||
set XPU_PTI_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/9d1a91e2-e8b8-40a5-8c7f-5db768a6a60c/w_intel-pti-dev_p_0.9.0.37_offline.exe
|
||||
set XPU_BUNDLE_VERSION=0.5.3+31
|
||||
set XPU_PTI_VERSION=0.9.0+36
|
||||
set XPU_BUNDLE_PRODUCT_NAME=intel.oneapi.win.intel-for-pytorch-gpu-dev.product
|
||||
set XPU_PTI_PRODUCT_NAME=intel.oneapi.win.intel-pti-dev.product
|
||||
set XPU_BUNDLE_INSTALLED=0
|
||||
set XPU_PTI_INSTALLED=0
|
||||
set XPU_BUNDLE_UNINSTALL=0
|
||||
set XPU_PTI_UNINSTALL=0
|
||||
|
||||
:: Check if XPU bundle is target version or already installed
|
||||
if exist "%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" goto xpu_bundle_ver_check
|
||||
goto xpu_bundle_install
|
||||
|
||||
:xpu_bundle_ver_check
|
||||
|
||||
"%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" --list-products > xpu_bundle_installed_ver.log
|
||||
|
||||
for /f "tokens=1,2" %%a in (xpu_bundle_installed_ver.log) do (
|
||||
if "%%a"=="%XPU_BUNDLE_PRODUCT_NAME%" (
|
||||
echo %%a Installed Version: %%b
|
||||
set XPU_BUNDLE_INSTALLED=1
|
||||
if not "%XPU_BUNDLE_VERSION%"=="%%b" (
|
||||
start /wait "Installer Title" "%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" --action=remove --eula=accept --silent --product-id %XPU_BUNDLE_PRODUCT_NAME% --product-ver %%b --log-dir uninstall_bundle
|
||||
set XPU_BUNDLE_UNINSTALL=1
|
||||
)
|
||||
)
|
||||
if "%%a"=="%XPU_PTI_PRODUCT_NAME%" (
|
||||
echo %%a Installed Version: %%b
|
||||
set XPU_PTI_INSTALLED=1
|
||||
if not "%XPU_PTI_VERSION%"=="%%b" (
|
||||
start /wait "Installer Title" "%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" --action=remove --eula=accept --silent --product-id %XPU_PTI_PRODUCT_NAME% --product-ver %%b --log-dir uninstall_bundle
|
||||
set XPU_PTI_UNINSTALL=1
|
||||
)
|
||||
)
|
||||
)
|
||||
if errorlevel 1 exit /b 1
|
||||
if exist xpu_bundle_installed_ver.log del xpu_bundle_installed_ver.log
|
||||
if "%XPU_BUNDLE_INSTALLED%"=="0" goto xpu_bundle_install
|
||||
if "%XPU_BUNDLE_UNINSTALL%"=="1" goto xpu_bundle_install
|
||||
if "%XPU_PTI_INSTALLED%"=="0" goto xpu_pti_install
|
||||
if "%XPU_PTI_UNINSTALL%"=="1" goto xpu_pti_install
|
||||
goto xpu_install_end
|
||||
|
||||
:xpu_bundle_install
|
||||
|
||||
curl -o xpu_bundle.exe --retry 3 --retry-all-errors -k %XPU_BUNDLE_URL%
|
||||
echo "XPU Bundle installing..."
|
||||
start /wait "Intel Pytorch Bundle Installer" "xpu_bundle.exe" --action=install --eula=accept --silent --log-dir install_bundle
|
||||
if errorlevel 1 exit /b 1
|
||||
del xpu_bundle.exe
|
||||
|
||||
:xpu_pti_install
|
||||
|
||||
curl -o xpu_pti.exe --retry 3 --retry-all-errors -k %XPU_PTI_URL%
|
||||
echo "XPU PTI installing..."
|
||||
start /wait "Intel PTI Installer" "xpu_pti.exe" --action=install --eula=accept --silent --log-dir install_bundle
|
||||
if errorlevel 1 exit /b 1
|
||||
del xpu_pti.exe
|
||||
|
||||
:xpu_install_end
|
@ -40,7 +40,6 @@ set CUDA_PATH_V%VERSION_SUFFIX%=%CUDA_PATH%
|
||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
|
||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
||||
set CUDNN_ROOT_DIR=%CUDA_PATH%
|
||||
set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt
|
||||
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
|
||||
set NUMBAPRO_CUDALIB=%CUDA_PATH%\bin
|
||||
set NUMBAPRO_LIBDEVICE=%CUDA_PATH%\nvvm\libdevice
|
||||
|
@ -31,6 +31,6 @@ if ERRORLEVEL 1 exit /b 1
|
||||
|
||||
:: Run tests C++-side and load the exported script module.
|
||||
cd build
|
||||
set PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\bin\x64;%TMP_DIR_WIN%\build\torch\lib;%PATH%
|
||||
set PATH=%TMP_DIR_WIN%\build\torch\lib;%PATH%
|
||||
test_custom_backend.exe model.pt
|
||||
if ERRORLEVEL 1 exit /b 1
|
||||
|
@ -31,6 +31,6 @@ if ERRORLEVEL 1 exit /b 1
|
||||
|
||||
:: Run tests C++-side and load the exported script module.
|
||||
cd build
|
||||
set PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\bin\x64;%TMP_DIR_WIN%\build\torch\lib;%PATH%
|
||||
set PATH=%TMP_DIR_WIN%\build\torch\lib;%PATH%
|
||||
test_custom_ops.exe model.pt
|
||||
if ERRORLEVEL 1 exit /b 1
|
||||
|
@ -5,7 +5,7 @@ if errorlevel 1 exit /b 1
|
||||
set CWD=%cd%
|
||||
|
||||
set CPP_TESTS_DIR=%TMP_DIR_WIN%\build\torch\bin
|
||||
set PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\bin\x64;%TMP_DIR_WIN%\build\torch\lib;%PATH%
|
||||
set PATH=%TMP_DIR_WIN%\build\torch\lib;%PATH%
|
||||
|
||||
set TORCH_CPP_TEST_MNIST_PATH=%CWD%\test\cpp\api\mnist
|
||||
python tools\download_mnist.py --quiet -d %TORCH_CPP_TEST_MNIST_PATH%
|
||||
|
@ -40,6 +40,9 @@ python -m pip install pytest-rerunfailures==10.3 pytest-cpp==2.3.0 tensorboard==
|
||||
# Install Z3 optional dependency for Windows builds.
|
||||
python -m pip install z3-solver==4.12.2.0
|
||||
|
||||
# Install tlparse for test\dynamo\test_structured_trace.py UTs.
|
||||
python -m pip install tlparse==0.3.25
|
||||
|
||||
run_tests() {
|
||||
# Run nvidia-smi if available
|
||||
for path in '/c/Program Files/NVIDIA Corporation/NVSMI/nvidia-smi.exe' /c/Windows/System32/nvidia-smi.exe; do
|
||||
|
@ -116,15 +116,14 @@ if [[ "$PACKAGE_TYPE" == libtorch ]]; then
|
||||
cd /tmp/libtorch
|
||||
fi
|
||||
|
||||
if [[ "$GPU_ARCH_TYPE" == xpu ]]; then
|
||||
# Workaround for __mkl_tmp_MOD unbound variable issue, refer https://github.com/pytorch/pytorch/issues/130543
|
||||
set +u
|
||||
source /opt/intel/oneapi/pytorch-gpu-dev-0.5/oneapi-vars.sh
|
||||
fi
|
||||
|
||||
# Test the package
|
||||
/builder/check_binary.sh
|
||||
|
||||
if [[ "\$GPU_ARCH_TYPE" != *s390x* && "\$GPU_ARCH_TYPE" != *xpu* && "\$GPU_ARCH_TYPE" != *rocm* && "$PACKAGE_TYPE" != libtorch ]]; then
|
||||
# Exclude s390, xpu, rocm and libtorch builds from smoke testing
|
||||
python /builder/test/smoke_test/smoke_test.py --package=torchonly --torch-compile-check disabled
|
||||
fi
|
||||
|
||||
# Clean temp files
|
||||
cd /builder && git clean -ffdx
|
||||
|
||||
|
@ -90,7 +90,7 @@ fi
|
||||
if [[ "$PACKAGE_TYPE" =~ .*wheel.* && -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*rocm.* && $(uname) == "Linux" ]]; then
|
||||
TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
|
||||
if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
|
||||
TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton-rocm.txt)
|
||||
TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton.txt)
|
||||
TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
|
||||
fi
|
||||
if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
||||
@ -102,10 +102,10 @@ fi
|
||||
|
||||
# Set triton via PYTORCH_EXTRA_INSTALL_REQUIREMENTS for triton xpu package
|
||||
if [[ "$PACKAGE_TYPE" =~ .*wheel.* && -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*xpu.* && $(uname) == "Linux" ]]; then
|
||||
TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}"
|
||||
TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
|
||||
if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
|
||||
TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton-xpu.txt)
|
||||
TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}+${TRITON_SHORTHASH}"
|
||||
TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
|
||||
fi
|
||||
if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
||||
export PYTORCH_EXTRA_INSTALL_REQUIREMENTS="${TRITON_REQUIREMENT}"
|
||||
|
@ -10,6 +10,11 @@ export SCCACHE_BUCKET=ossci-compiler-cache
|
||||
export SCCACHE_IGNORE_SERVER_IO_ERROR=1
|
||||
export VC_YEAR=2019
|
||||
|
||||
if [[ "$DESIRED_CUDA" == 'xpu' ]]; then
|
||||
export VC_YEAR=2022
|
||||
export USE_SCCACHE=0
|
||||
fi
|
||||
|
||||
echo "Free space on filesystem before build:"
|
||||
df -h
|
||||
|
||||
|
@ -6,6 +6,10 @@ source "${BINARY_ENV_FILE:-/c/w/env}"
|
||||
export CUDA_VERSION="${DESIRED_CUDA/cu/}"
|
||||
export VC_YEAR=2019
|
||||
|
||||
if [[ "$DESIRED_CUDA" == 'xpu' ]]; then
|
||||
export VC_YEAR=2022
|
||||
fi
|
||||
|
||||
pushd "$BUILDER_ROOT"
|
||||
|
||||
./windows/internal/smoke_test.bat
|
||||
|
5
.flake8
5
.flake8
@ -7,7 +7,7 @@ max-line-length = 120
|
||||
# C408 ignored because we like the dict keyword argument syntax
|
||||
# E501 is not flexible enough, we're using B950 instead
|
||||
ignore =
|
||||
E203,E305,E402,E501,E721,E741,F405,F841,F999,W503,W504,C408,E302,W291,E303,
|
||||
E203,E305,E402,E501,E704,E721,E741,F405,F841,F999,W503,W504,C408,E302,W291,E303,
|
||||
# shebang has extra meaning in fbcode lints, so I think it's not worth trying
|
||||
# to line this up with executable bit
|
||||
EXE001,
|
||||
@ -55,6 +55,9 @@ per-file-ignores =
|
||||
torch/distributed/_functional_collectives.py: TOR901
|
||||
torch/distributed/_spmd/data_parallel.py: TOR901
|
||||
torch/distributed/_tensor/_collective_utils.py: TOR901
|
||||
# This is a full package that happen to live within the test
|
||||
# folder, so ok to skip
|
||||
test/cpp_extensions/open_registration_extension/pytorch_openreg/_aten_impl.py: TOR901
|
||||
optional-ascii-coding = True
|
||||
exclude =
|
||||
./.git,
|
||||
|
10
.github/actionlint.yaml
vendored
10
.github/actionlint.yaml
vendored
@ -3,18 +3,20 @@ self-hosted-runner:
|
||||
# GitHub hosted x86 Linux runners
|
||||
- linux.20_04.4x
|
||||
- linux.20_04.16x
|
||||
# Repo-specific LF hosted ARC runners
|
||||
- linux.large.arc
|
||||
# Organization-wide AWS Linux Runners
|
||||
- linux.large
|
||||
- linux.2xlarge
|
||||
- linux.4xlarge
|
||||
- linux.9xlarge.ephemeral
|
||||
- am2.linux.9xlarge.ephemeral
|
||||
- linux.12xlarge
|
||||
- linux.12xlarge.ephemeral
|
||||
- linux.24xlarge
|
||||
- linux.24xlarge.ephemeral
|
||||
- linux.arm64.2xlarge
|
||||
- linux.arm64.2xlarge.ephemeral
|
||||
- linux.arm64.m7g.4xlarge
|
||||
- linux.arm64.m7g.4xlarge.ephemeral
|
||||
- linux.4xlarge.nvidia.gpu
|
||||
- linux.8xlarge.nvidia.gpu
|
||||
- linux.16xlarge.nvidia.gpu
|
||||
@ -38,6 +40,7 @@ self-hosted-runner:
|
||||
- amz2023.linux.24xlarge
|
||||
- amz2023.linux.arm64.2xlarge
|
||||
- amz2023.linux.arm64.m7g.4xlarge
|
||||
- amz2023.linux.arm64.m7g.4xlarge.ephemeral
|
||||
- amz2023.linux.4xlarge.nvidia.gpu
|
||||
- amz2023.linux.8xlarge.nvidia.gpu
|
||||
- amz2023.linux.16xlarge.nvidia.gpu
|
||||
@ -56,6 +59,9 @@ self-hosted-runner:
|
||||
# Repo-specific IBM hosted S390x runner
|
||||
- linux.s390x
|
||||
# Organization wide AWS Windows runners
|
||||
- windows.g4dn.xlarge
|
||||
- windows.g4dn.xlarge.nonephemeral
|
||||
- windows.4xlarge
|
||||
- windows.4xlarge.nonephemeral
|
||||
- windows.8xlarge.nvidia.gpu
|
||||
- windows.8xlarge.nvidia.gpu.nonephemeral
|
||||
|
@ -57,7 +57,7 @@ outputs:
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||
- uses: nick-fields/retry@v3.0.0
|
||||
name: Setup dependencies
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ inputs.github-token }}
|
||||
|
@ -17,7 +17,7 @@ inputs:
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||
- uses: nick-fields/retry@v3.0.0
|
||||
name: Setup dependencies
|
||||
with:
|
||||
shell: bash
|
||||
|
@ -24,7 +24,7 @@ inputs:
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||
- uses: nick-fields/retry@v3.0.0
|
||||
name: Setup dependencies
|
||||
with:
|
||||
shell: bash
|
||||
|
9
.github/actions/setup-linux/action.yml
vendored
9
.github/actions/setup-linux/action.yml
vendored
@ -44,7 +44,7 @@ runs:
|
||||
fi
|
||||
|
||||
- name: Log in to ECR
|
||||
uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
env:
|
||||
AWS_RETRY_MODE: standard
|
||||
AWS_MAX_ATTEMPTS: "5"
|
||||
@ -59,6 +59,13 @@ runs:
|
||||
aws ecr get-login-password --region "$AWS_DEFAULT_REGION" | docker login --username AWS \
|
||||
--password-stdin "$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com"
|
||||
|
||||
# For LF Runners we need to make sure we also login to Meta's ECR docker registry too.
|
||||
META_AWS_ACCOUNT_ID=308535385114
|
||||
if [ "$AWS_ACCOUNT_ID" != "$META_AWS_ACCOUNT_ID" ] ; then
|
||||
aws ecr get-login-password --region "$AWS_DEFAULT_REGION" | docker login --username AWS \
|
||||
--password-stdin "$META_AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com"
|
||||
fi
|
||||
|
||||
- name: Preserve github env variables for use in docker
|
||||
shell: bash
|
||||
run: |
|
||||
|
2
.github/actions/teardown-win/action.yml
vendored
2
.github/actions/teardown-win/action.yml
vendored
@ -31,7 +31,7 @@ runs:
|
||||
# retry this step several time similar to how checkout-pytorch GHA does
|
||||
- name: Cleanup workspace
|
||||
if: always()
|
||||
uses: nick-fields/retry@v2.8.2
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
env:
|
||||
EXTRA_DELETE_DIR: ${{ inputs.extra-delete-dir }}
|
||||
with:
|
||||
|
2
.github/ci_commit_pins/audio.txt
vendored
2
.github/ci_commit_pins/audio.txt
vendored
@ -1 +1 @@
|
||||
b3f6f511f2a1082bd56b13a3f6794e7fc3ba4862
|
||||
97ed7b36b7a741253d4e41e4da3c901d83294503
|
||||
|
2
.github/ci_commit_pins/xla.txt
vendored
2
.github/ci_commit_pins/xla.txt
vendored
@ -1 +1 @@
|
||||
5ea4535f0699f366adb554183a65ebf7dc34a8be
|
||||
r2.5
|
||||
|
39
.github/label_to_label.yml
vendored
39
.github/label_to_label.yml
vendored
@ -1,13 +1,50 @@
|
||||
# Use this to auto apply labels based on other labels. Applies to both PRs and
|
||||
# issues. Currently only supports any and all
|
||||
- any:
|
||||
- "module: custom operators"
|
||||
- "module: opcheck"
|
||||
then:
|
||||
- "module: custom-operators"
|
||||
- any:
|
||||
- "module: custom-operators"
|
||||
- "module: functionalization"
|
||||
- "module: aotdispatch"
|
||||
- "module: higher order operators"
|
||||
- "module: fakeTensor"
|
||||
- "module: ProxyTensor"
|
||||
- "module: library"
|
||||
- "module: reinplacing"
|
||||
then:
|
||||
- "module: pt2-dispatcher"
|
||||
- any:
|
||||
- "module: vmap"
|
||||
then:
|
||||
- "module: functorch"
|
||||
- any:
|
||||
- "module: reinplacing"
|
||||
then:
|
||||
- "module: inductor"
|
||||
- any:
|
||||
- "module: pt2 optimizer"
|
||||
then:
|
||||
- "module: dynamo"
|
||||
- any:
|
||||
- "module: flex attention"
|
||||
then:
|
||||
- "module: higher order operators"
|
||||
- any:
|
||||
- "module: aotinductor"
|
||||
then:
|
||||
- "oncall: export"
|
||||
- any:
|
||||
- "module: dynamo"
|
||||
- "module: pt2-dispatcher"
|
||||
- "module: inductor"
|
||||
- "module: aotinductor"
|
||||
- "module: cudagraphs"
|
||||
- "oncall: export"
|
||||
- "module: startup-tracing-compile"
|
||||
- "module: compiled autograd"
|
||||
- "module: flex attention"
|
||||
- "module: dynamic shapes"
|
||||
then:
|
||||
- "oncall: pt2"
|
||||
|
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@ -29,7 +29,6 @@
|
||||
- torch/fx/experimental/recording.py
|
||||
- torch/fx/experimental/sym_node.py
|
||||
- torch/fx/experimental/validator.py
|
||||
- torch/fx/experimental/_sym_dispatch_mode.py
|
||||
- torch/fx/experimental/proxy_tensor.py
|
||||
- test/distributed/_tensor/test_dtensor_compile.py
|
||||
- test/distributed/tensor/parallel/test_fsdp_2d_parallel.py
|
||||
|
342
.github/lf-canary-scale-config.yml
vendored
342
.github/lf-canary-scale-config.yml
vendored
@ -31,132 +31,312 @@ runner_types:
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.10xlarge.avx2:
|
||||
disk_size: 200
|
||||
instance_type: m4.10xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 450
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.24xl.spr-metal:
|
||||
disk_size: 200
|
||||
instance_type: c7i.metal-24xl
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.16xlarge.spr:
|
||||
disk_size: 200
|
||||
instance_type: c7i.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.9xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.9xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 20
|
||||
max_available: 50
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.12xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.12xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.16xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.24xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.24xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
max_available: 500
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.24xlarge.ephemeral:
|
||||
disk_size: 150
|
||||
instance_type: c5.24xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.2xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 3120
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.4xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.8xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.8xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.g4dn.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.g4dn.metal.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.metal
|
||||
is_ephemeral: false
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.g5.48xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.48xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.g5.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.g5.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 2400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.g6.4xlarge.experimental.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g6.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 30
|
||||
max_available: 50
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.large:
|
||||
max_available: 1200
|
||||
disk_size: 15
|
||||
instance_type: c5.large
|
||||
is_ephemeral: false
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.c.linux.arm64.2xlarge:
|
||||
disk_size: 256
|
||||
instance_type: t4g.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.c.linux.arm64.m7g.4xlarge:
|
||||
disk_size: 256
|
||||
instance_type: m7g.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.c.linux.arm64.2xlarge.ephemeral:
|
||||
disk_size: 256
|
||||
instance_type: t4g.2xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.c.linux.arm64.m7g.4xlarge.ephemeral:
|
||||
disk_size: 256
|
||||
instance_type: m7g.4xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.c.linux.arm64.m7g.metal:
|
||||
disk_size: 256
|
||||
instance_type: m7g.metal
|
||||
is_ephemeral: false
|
||||
max_available: 100
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.c.windows.g4dn.xlarge:
|
||||
disk_size: 256
|
||||
instance_type: g4dn.xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 100
|
||||
os: windows
|
||||
lf.c.windows.g4dn.xlarge.nonephemeral:
|
||||
disk_size: 256
|
||||
instance_type: g4dn.xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 100
|
||||
os: windows
|
||||
lf.c.windows.4xlarge:
|
||||
disk_size: 256
|
||||
instance_type: c5d.4xlarge
|
||||
@ -187,159 +367,3 @@ runner_types:
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: windows
|
||||
|
||||
### Setup runner types to test the Amazon Linux 2023 AMI
|
||||
lf.c.amz2023.linux.12xlarge:
|
||||
disk_size: 200
|
||||
instance_type: c5.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.10xlarge.avx2:
|
||||
disk_size: 200
|
||||
instance_type: m4.10xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 450
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.24xl.spr-metal:
|
||||
disk_size: 200
|
||||
instance_type: c7i.metal-24xl
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.16xlarge.spr:
|
||||
disk_size: 200
|
||||
instance_type: c7i.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.9xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.9xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 20
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.12xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.12xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.16xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.24xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.24xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.2xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 3120
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.4xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.8xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.8xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.g4dn.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.g4dn.metal.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.metal
|
||||
is_ephemeral: false
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.g5.48xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.48xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.g5.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.g5.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 2400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.g6.4xlarge.experimental.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g6.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 30
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.large:
|
||||
max_available: 1200
|
||||
disk_size: 15
|
||||
instance_type: c5.large
|
||||
is_ephemeral: false
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.c.amz2023.linux.arm64.2xlarge:
|
||||
disk_size: 256
|
||||
instance_type: t4g.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
lf.c.amz2023.linux.arm64.m7g.4xlarge:
|
||||
disk_size: 256
|
||||
instance_type: m7g.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
lf.c.amz2023.linux.arm64.m7g.metal:
|
||||
disk_size: 256
|
||||
instance_type: m7g.metal
|
||||
is_ephemeral: false
|
||||
max_available: 100
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
|
342
.github/lf-scale-config.yml
vendored
342
.github/lf-scale-config.yml
vendored
@ -31,132 +31,312 @@ runner_types:
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.10xlarge.avx2:
|
||||
disk_size: 200
|
||||
instance_type: m4.10xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 450
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.24xl.spr-metal:
|
||||
disk_size: 200
|
||||
instance_type: c7i.metal-24xl
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.16xlarge.spr:
|
||||
disk_size: 200
|
||||
instance_type: c7i.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.9xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.9xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 20
|
||||
max_available: 50
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.12xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.12xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.16xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.24xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.24xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
max_available: 500
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.24xlarge.ephemeral:
|
||||
disk_size: 150
|
||||
instance_type: c5.24xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.2xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 3120
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.4xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.8xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.8xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.g4dn.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.g4dn.metal.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.metal
|
||||
is_ephemeral: false
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.g5.48xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.48xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.g5.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.g5.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 2400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.g6.4xlarge.experimental.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g6.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 30
|
||||
max_available: 50
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.large:
|
||||
max_available: 1200
|
||||
disk_size: 15
|
||||
instance_type: c5.large
|
||||
is_ephemeral: false
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||
lf.linux.arm64.2xlarge:
|
||||
disk_size: 256
|
||||
instance_type: t4g.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.linux.arm64.m7g.4xlarge:
|
||||
disk_size: 256
|
||||
instance_type: m7g.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.linux.arm64.2xlarge.ephemeral:
|
||||
disk_size: 256
|
||||
instance_type: t4g.2xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.linux.arm64.m7g.4xlarge.ephemeral:
|
||||
disk_size: 256
|
||||
instance_type: m7g.4xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.linux.arm64.m7g.metal:
|
||||
disk_size: 256
|
||||
instance_type: m7g.metal
|
||||
is_ephemeral: false
|
||||
max_available: 100
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
variants:
|
||||
amz2023:
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
am2:
|
||||
ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
|
||||
lf.windows.g4dn.xlarge:
|
||||
disk_size: 256
|
||||
instance_type: g4dn.xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 100
|
||||
os: windows
|
||||
lf.windows.g4dn.xlarge.nonephemeral:
|
||||
disk_size: 256
|
||||
instance_type: g4dn.xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 100
|
||||
os: windows
|
||||
lf.windows.4xlarge:
|
||||
disk_size: 256
|
||||
instance_type: c5d.4xlarge
|
||||
@ -187,159 +367,3 @@ runner_types:
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: windows
|
||||
|
||||
### Setup runner types to test the Amazon Linux 2023 AMI
|
||||
lf.amz2023.linux.12xlarge:
|
||||
disk_size: 200
|
||||
instance_type: c5.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.10xlarge.avx2:
|
||||
disk_size: 200
|
||||
instance_type: m4.10xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 450
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.24xl.spr-metal:
|
||||
disk_size: 200
|
||||
instance_type: c7i.metal-24xl
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.16xlarge.spr:
|
||||
disk_size: 200
|
||||
instance_type: c7i.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.9xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.9xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 20
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.12xlarge.ephemeral:
|
||||
disk_size: 200
|
||||
instance_type: c5.12xlarge
|
||||
is_ephemeral: true
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.16xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.16xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.24xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.24xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.2xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 3120
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.4xlarge:
|
||||
disk_size: 150
|
||||
instance_type: c5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 1000
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.8xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g3.8xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.g4dn.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 250
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.g4dn.metal.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g4dn.metal
|
||||
is_ephemeral: false
|
||||
max_available: 300
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.g5.48xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.48xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.g5.12xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.12xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 150
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.g5.4xlarge.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g5.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 2400
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.g6.4xlarge.experimental.nvidia.gpu:
|
||||
disk_size: 150
|
||||
instance_type: g6.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 30
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.large:
|
||||
max_available: 1200
|
||||
disk_size: 15
|
||||
instance_type: c5.large
|
||||
is_ephemeral: false
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||
lf.amz2023.linux.arm64.2xlarge:
|
||||
disk_size: 256
|
||||
instance_type: t4g.2xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
lf.amz2023.linux.arm64.m7g.4xlarge:
|
||||
disk_size: 256
|
||||
instance_type: m7g.4xlarge
|
||||
is_ephemeral: false
|
||||
max_available: 200
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
lf.amz2023.linux.arm64.m7g.metal:
|
||||
disk_size: 256
|
||||
instance_type: m7g.metal
|
||||
is_ephemeral: false
|
||||
max_available: 100
|
||||
os: linux
|
||||
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
|
||||
|
6
.github/merge_rules.yaml
vendored
6
.github/merge_rules.yaml
vendored
@ -107,8 +107,8 @@
|
||||
mandatory_checks_name:
|
||||
- EasyCLA
|
||||
- Lint
|
||||
- pull / linux-focal-py3_8-clang9-xla / build
|
||||
- pull / linux-focal-py3_8-clang9-xla / test (xla, 1, 1, linux.12xlarge)
|
||||
- pull / linux-focal-py3_9-clang9-xla / build
|
||||
- pull / linux-focal-py3_9-clang9-xla / test (xla, 1, 1, linux.12xlarge)
|
||||
|
||||
- name: Documentation
|
||||
patterns:
|
||||
@ -282,9 +282,11 @@
|
||||
- torch/_C/_distributed*
|
||||
- torch/csrc/distributed/**
|
||||
- torch/testing/_internal/distributed/**
|
||||
- torch/multiprocessing/**
|
||||
- test/distributed/**
|
||||
- test/cpp/dist_autograd/**
|
||||
- test/cpp/rpc/**
|
||||
- test/*multiprocessing*
|
||||
approved_by:
|
||||
- wconstab
|
||||
- mrshenli
|
||||
|
5
.github/nitpicks.yml
vendored
Normal file
5
.github/nitpicks.yml
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
- markdown: |
|
||||
## Attention! native_functions.yaml was changed
|
||||
If you are adding a new function or defaulted argument to native_functions.yaml, you cannot use it from pre-existing Python frontend code until our FC window passes (two weeks). Split your PR into two PRs, one which adds the new C++ functionality, and one that makes use of it from Python, and land them two weeks apart. See https://github.com/pytorch/pytorch/wiki/PyTorch's-Python-Frontend-Backward-and-Forward-Compatibility-Policy#forwards-compatibility-fc for more info.
|
||||
pathFilter:
|
||||
- 'aten/src/ATen/native/native_functions.yaml'
|
1
.github/pytorch-probot.yml
vendored
1
.github/pytorch-probot.yml
vendored
@ -9,6 +9,7 @@ ciflow_push_tags:
|
||||
- ciflow/inductor-rocm
|
||||
- ciflow/inductor-perf-compare
|
||||
- ciflow/inductor-micro-benchmark
|
||||
- ciflow/inductor-micro-benchmark-cpu-x86
|
||||
- ciflow/inductor-cu124
|
||||
- ciflow/linux-aarch64
|
||||
- ciflow/mps
|
||||
|
2
.github/requirements/conda-env-iOS.txt
vendored
2
.github/requirements/conda-env-iOS.txt
vendored
@ -4,4 +4,4 @@ ninja=1.10.2
|
||||
numpy=1.23.3
|
||||
pyyaml=6.0
|
||||
setuptools=68.2.2
|
||||
typing-extensions=4.9.0
|
||||
typing-extensions=4.11.0
|
||||
|
@ -1,6 +1,7 @@
|
||||
boto3==1.19.12
|
||||
hypothesis==6.56.4
|
||||
expecttest==0.1.6
|
||||
expecttest==0.2.1
|
||||
fbscribelogger==0.1.6
|
||||
librosa>=0.6.2
|
||||
mpmath==1.3.0
|
||||
networkx==2.8.7
|
||||
@ -18,7 +19,7 @@ pytest-rerunfailures==10.3
|
||||
pytest-flakefinder==1.1.0
|
||||
scipy==1.10.1
|
||||
sympy==1.12.1 ; python_version == "3.8"
|
||||
sympy>=1.13.0 ; python_version >= "3.9"
|
||||
sympy==1.13.1 ; python_version >= "3.9"
|
||||
unittest-xml-reporting<=3.2.0,>=2.0.0
|
||||
xdoctest==1.1.0
|
||||
filelock==3.6.0
|
||||
|
26
.github/scripts/build_triton_wheel.py
vendored
26
.github/scripts/build_triton_wheel.py
vendored
@ -15,9 +15,7 @@ REPO_DIR = SCRIPT_DIR.parent.parent
|
||||
|
||||
def read_triton_pin(device: str = "cuda") -> str:
|
||||
triton_file = "triton.txt"
|
||||
if device == "rocm":
|
||||
triton_file = "triton-rocm.txt"
|
||||
elif device == "xpu":
|
||||
if device == "xpu":
|
||||
triton_file = "triton-xpu.txt"
|
||||
with open(REPO_DIR / ".ci" / "docker" / "ci_commit_pins" / triton_file) as f:
|
||||
return f.read().strip()
|
||||
@ -50,6 +48,25 @@ def patch_init_py(
|
||||
f.write(orig)
|
||||
|
||||
|
||||
# TODO: remove patch_setup_py() once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
|
||||
def patch_setup_py(path: Path) -> None:
|
||||
with open(path) as f:
|
||||
orig = f.read()
|
||||
try:
|
||||
orig = check_and_replace(
|
||||
orig,
|
||||
"https://tritonlang.blob.core.windows.net/llvm-builds/",
|
||||
"https://oaitriton.blob.core.windows.net/public/llvm-builds/",
|
||||
)
|
||||
with open(path, "w") as f:
|
||||
f.write(orig)
|
||||
except RuntimeError as e:
|
||||
print(
|
||||
f"Applying patch_setup_py() for llvm-build package failed: {e}.",
|
||||
"If you are trying to build a newer version of Triton, you can ignore this.",
|
||||
)
|
||||
|
||||
|
||||
def build_triton(
|
||||
*,
|
||||
version: str,
|
||||
@ -91,6 +108,9 @@ def build_triton(
|
||||
else:
|
||||
check_call(["git", "checkout", commit_hash], cwd=triton_basedir)
|
||||
|
||||
# TODO: remove this and patch_setup_py() once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
|
||||
patch_setup_py(triton_pythondir / "setup.py")
|
||||
|
||||
if build_conda:
|
||||
with open(triton_basedir / "meta.yaml", "w") as meta:
|
||||
print(
|
||||
|
11
.github/scripts/check_labels.py
vendored
11
.github/scripts/check_labels.py
vendored
@ -27,6 +27,12 @@ def parse_args() -> Any:
|
||||
|
||||
parser = ArgumentParser("Check PR labels")
|
||||
parser.add_argument("pr_num", type=int)
|
||||
# add a flag to return a non-zero exit code if the PR does not have the required labels
|
||||
parser.add_argument(
|
||||
"--exit-non-zero",
|
||||
action="store_true",
|
||||
help="Return a non-zero exit code if the PR does not have the required labels",
|
||||
)
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
@ -41,10 +47,13 @@ def main() -> None:
|
||||
if not has_required_labels(pr):
|
||||
print(LABEL_ERR_MSG)
|
||||
add_label_err_comment(pr)
|
||||
if args.exit_non_zero:
|
||||
sys.exit(1)
|
||||
else:
|
||||
delete_all_label_err_comments(pr)
|
||||
except Exception as e:
|
||||
pass
|
||||
if args.exit_non_zero:
|
||||
sys.exit(1)
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
3
.github/scripts/cherry_pick.py
vendored
3
.github/scripts/cherry_pick.py
vendored
@ -169,7 +169,8 @@ def create_cherry_pick_branch(
|
||||
repo.create_branch_and_checkout(branch=cherry_pick_branch)
|
||||
|
||||
# We might want to support ghstack later
|
||||
repo._run_git("cherry-pick", "-x", "-X", "theirs", commit_sha)
|
||||
# We don't want to resolve conflicts here.
|
||||
repo._run_git("cherry-pick", "-x", commit_sha)
|
||||
repo.push(branch=cherry_pick_branch, dry_run=False)
|
||||
|
||||
return cherry_pick_branch
|
||||
|
4
.github/scripts/filter_test_configs.py
vendored
4
.github/scripts/filter_test_configs.py
vendored
@ -39,9 +39,9 @@ SUPPORTED_PERIODICAL_MODES: Dict[str, Callable[[Optional[str]], bool]] = {
|
||||
}
|
||||
|
||||
# The link to the published list of disabled jobs
|
||||
DISABLED_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/disabled-jobs.json"
|
||||
DISABLED_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/disabled-jobs.json?versionId=sxzMTP57qj.Vwz8dN1glkTK560Txq9W3"
|
||||
# and unstable jobs
|
||||
UNSTABLE_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/unstable-jobs.json"
|
||||
UNSTABLE_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/unstable-jobs.json?versionId=8f1.4S3MupuHXH8t0waxyGnPsGHJYdv9"
|
||||
|
||||
# Some constants used to handle disabled and unstable jobs
|
||||
JOB_NAME_SEP = "/"
|
||||
|
85
.github/scripts/generate_binary_build_matrix.py
vendored
85
.github/scripts/generate_binary_build_matrix.py
vendored
@ -18,13 +18,13 @@ from typing import Dict, List, Optional, Tuple
|
||||
CUDA_ARCHES = ["11.8", "12.1", "12.4"]
|
||||
|
||||
|
||||
CUDA_ARCHES_FULL_VERSION = {"11.8": "11.8.0", "12.1": "12.1.1", "12.4": "12.4.0"}
|
||||
CUDA_ARCHES_FULL_VERSION = {"11.8": "11.8.0", "12.1": "12.1.1", "12.4": "12.4.1"}
|
||||
|
||||
|
||||
CUDA_ARCHES_CUDNN_VERSION = {"11.8": "9", "12.1": "9", "12.4": "9"}
|
||||
|
||||
|
||||
ROCM_ARCHES = ["6.0", "6.1"]
|
||||
ROCM_ARCHES = ["6.1", "6.2"]
|
||||
|
||||
XPU_ARCHES = ["xpu"]
|
||||
|
||||
@ -68,18 +68,18 @@ PYTORCH_EXTRA_INSTALL_REQUIREMENTS = {
|
||||
"nvidia-nvtx-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64'"
|
||||
),
|
||||
"12.4": (
|
||||
"nvidia-cuda-nvrtc-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cuda-runtime-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cuda-cupti-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cuda-nvrtc-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cuda-runtime-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cuda-cupti-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cudnn-cu12==9.1.0.70; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cublas-cu12==12.4.2.65; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cufft-cu12==11.2.0.44; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-curand-cu12==10.3.5.119; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cusolver-cu12==11.6.0.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cusparse-cu12==12.3.0.142; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cublas-cu12==12.4.5.8; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cufft-cu12==11.2.1.3; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-curand-cu12==10.3.5.147; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cusolver-cu12==11.6.1.9; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-cusparse-cu12==12.3.1.170; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-nccl-cu12==2.21.5; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-nvtx-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-nvjitlink-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64'"
|
||||
"nvidia-nvtx-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||
"nvidia-nvjitlink-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64'"
|
||||
),
|
||||
}
|
||||
|
||||
@ -325,6 +325,7 @@ def generate_wheels_matrix(
|
||||
os: str,
|
||||
arches: Optional[List[str]] = None,
|
||||
python_versions: Optional[List[str]] = None,
|
||||
use_split_build: bool = False,
|
||||
) -> List[Dict[str, str]]:
|
||||
package_type = "wheel"
|
||||
if os == "linux" or os == "linux-aarch64" or os == "linux-s390x":
|
||||
@ -340,7 +341,7 @@ def generate_wheels_matrix(
|
||||
if os == "linux":
|
||||
arches += CPU_CXX11_ABI_ARCH + CUDA_ARCHES + ROCM_ARCHES + XPU_ARCHES
|
||||
elif os == "windows":
|
||||
arches += CUDA_ARCHES
|
||||
arches += CUDA_ARCHES + XPU_ARCHES
|
||||
elif os == "linux-aarch64":
|
||||
# Only want the one arch as the CPU type is different and
|
||||
# uses different build/test scripts
|
||||
@ -365,13 +366,23 @@ def generate_wheels_matrix(
|
||||
else arch_version
|
||||
)
|
||||
|
||||
# TODO: Enable python 3.13 on rocm, xpu, aarch64, windows
|
||||
# TODO: Enable python 3.13 on rocm, aarch64, windows
|
||||
if (
|
||||
gpu_arch_type in ["rocm", "xpu"] or os != "linux"
|
||||
gpu_arch_type == "rocm" or (os != "linux" and os != "linux-s390x")
|
||||
) and python_version == "3.13":
|
||||
continue
|
||||
|
||||
if use_split_build and (
|
||||
arch_version not in ["12.4", "12.1", "11.8", "cpu"] or os != "linux"
|
||||
):
|
||||
raise RuntimeError(
|
||||
"Split build is only supported on linux with cuda 12.4, 12.1, 11.8, and cpu.\n"
|
||||
f"Currently attempting to build on arch version {arch_version} and os {os}.\n"
|
||||
"Please modify the matrix generation to exclude this combination."
|
||||
)
|
||||
|
||||
# 12.1 linux wheels require PYTORCH_EXTRA_INSTALL_REQUIREMENTS to install
|
||||
|
||||
if (
|
||||
arch_version in ["12.4", "12.1", "11.8"]
|
||||
and os == "linux"
|
||||
@ -385,6 +396,7 @@ def generate_wheels_matrix(
|
||||
"desired_cuda": translate_desired_cuda(
|
||||
gpu_arch_type, gpu_arch_version
|
||||
),
|
||||
"use_split_build": "True" if use_split_build else "False",
|
||||
"devtoolset": (
|
||||
"cxx11-abi" if arch_version == "cuda-aarch64" else ""
|
||||
),
|
||||
@ -400,7 +412,8 @@ def generate_wheels_matrix(
|
||||
),
|
||||
}
|
||||
)
|
||||
if arch_version != "cuda-aarch64":
|
||||
# Special build building to use on Colab. PyThon 3.10 for 12.1 CUDA
|
||||
if python_version == "3.10" and arch_version == "12.1":
|
||||
ret.append(
|
||||
{
|
||||
"python_version": python_version,
|
||||
@ -409,40 +422,16 @@ def generate_wheels_matrix(
|
||||
"desired_cuda": translate_desired_cuda(
|
||||
gpu_arch_type, gpu_arch_version
|
||||
),
|
||||
"use_split_build": "True",
|
||||
"use_split_build": "True" if use_split_build else "False",
|
||||
"devtoolset": "",
|
||||
"container_image": WHEEL_CONTAINER_IMAGES[arch_version],
|
||||
"package_type": package_type,
|
||||
"pytorch_extra_install_requirements": (
|
||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS[arch_version] # fmt: skip
|
||||
if os != "linux-aarch64"
|
||||
else ""
|
||||
),
|
||||
"build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-split".replace( # noqa: B950
|
||||
"pytorch_extra_install_requirements": "",
|
||||
"build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-full".replace( # noqa: B950
|
||||
".", "_"
|
||||
),
|
||||
}
|
||||
)
|
||||
# Special build building to use on Colab. PyThon 3.10 for 12.1 CUDA
|
||||
if python_version == "3.10" and arch_version == "12.1":
|
||||
ret.append(
|
||||
{
|
||||
"python_version": python_version,
|
||||
"gpu_arch_type": gpu_arch_type,
|
||||
"gpu_arch_version": gpu_arch_version,
|
||||
"desired_cuda": translate_desired_cuda(
|
||||
gpu_arch_type, gpu_arch_version
|
||||
),
|
||||
"use_split_build": "False",
|
||||
"devtoolset": "",
|
||||
"container_image": WHEEL_CONTAINER_IMAGES[arch_version],
|
||||
"package_type": package_type,
|
||||
"pytorch_extra_install_requirements": "",
|
||||
"build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-full".replace( # noqa: B950
|
||||
".", "_"
|
||||
),
|
||||
}
|
||||
)
|
||||
else:
|
||||
ret.append(
|
||||
{
|
||||
@ -452,10 +441,9 @@ def generate_wheels_matrix(
|
||||
"desired_cuda": translate_desired_cuda(
|
||||
gpu_arch_type, gpu_arch_version
|
||||
),
|
||||
"use_split_build": "True" if use_split_build else "False",
|
||||
"devtoolset": (
|
||||
"cxx11-abi"
|
||||
if arch_version in ["cpu-cxx11-abi", "xpu"]
|
||||
else ""
|
||||
"cxx11-abi" if arch_version == "cpu-cxx11-abi" else ""
|
||||
),
|
||||
"container_image": WHEEL_CONTAINER_IMAGES[arch_version],
|
||||
"package_type": package_type,
|
||||
@ -463,12 +451,13 @@ def generate_wheels_matrix(
|
||||
".", "_"
|
||||
),
|
||||
"pytorch_extra_install_requirements": (
|
||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS["12.1"] # fmt: skip
|
||||
if os != "linux"
|
||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS["12.4"] # fmt: skip
|
||||
if os != "linux" and gpu_arch_type != "xpu"
|
||||
else ""
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
|
40
.github/scripts/generate_ci_workflows.py
vendored
40
.github/scripts/generate_ci_workflows.py
vendored
@ -61,6 +61,7 @@ class BinaryBuildWorkflow:
|
||||
# Mainly for macos
|
||||
cross_compile_arm64: bool = False
|
||||
macos_runner: str = "macos-14-xlarge"
|
||||
use_split_build: bool = False
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
if self.abi_version:
|
||||
@ -69,12 +70,20 @@ class BinaryBuildWorkflow:
|
||||
)
|
||||
else:
|
||||
self.build_environment = f"{self.os}-binary-{self.package_type}"
|
||||
if self.use_split_build:
|
||||
# added to distinguish concurrency groups
|
||||
self.build_environment += "-split"
|
||||
|
||||
def generate_workflow_file(self, workflow_template: jinja2.Template) -> None:
|
||||
output_file_path = (
|
||||
GITHUB_DIR
|
||||
/ f"workflows/generated-{self.build_environment}-{self.branches}.yml"
|
||||
)
|
||||
if self.use_split_build:
|
||||
output_file_path = (
|
||||
GITHUB_DIR
|
||||
/ f"workflows/generated-{self.build_environment}-{self.branches}"
|
||||
)
|
||||
with open(output_file_path, "w") as output_file:
|
||||
GENERATED = "generated" # Note that please keep the variable GENERATED otherwise phabricator will hide the whole file
|
||||
output_file.writelines([f"# @{GENERATED} DO NOT EDIT MANUALLY\n"])
|
||||
@ -110,6 +119,20 @@ LINUX_BINARY_BUILD_WORFKLOWS = [
|
||||
isolated_workflow=True,
|
||||
),
|
||||
),
|
||||
BinaryBuildWorkflow(
|
||||
os=OperatingSystem.LINUX,
|
||||
package_type="manywheel",
|
||||
build_configs=generate_binary_build_matrix.generate_wheels_matrix(
|
||||
OperatingSystem.LINUX,
|
||||
use_split_build=True,
|
||||
arches=["11.8", "12.1", "12.4", "cpu"],
|
||||
),
|
||||
ciflow_config=CIFlowConfig(
|
||||
labels={LABEL_CIFLOW_BINARIES, LABEL_CIFLOW_BINARIES_WHEEL},
|
||||
isolated_workflow=True,
|
||||
),
|
||||
use_split_build=True,
|
||||
),
|
||||
BinaryBuildWorkflow(
|
||||
os=OperatingSystem.LINUX,
|
||||
package_type="conda",
|
||||
@ -158,10 +181,25 @@ LINUX_BINARY_SMOKE_WORKFLOWS = [
|
||||
build_configs=generate_binary_build_matrix.generate_wheels_matrix(
|
||||
OperatingSystem.LINUX,
|
||||
arches=["11.8", "12.1", "12.4"],
|
||||
python_versions=["3.8"],
|
||||
python_versions=["3.9"],
|
||||
),
|
||||
branches="main",
|
||||
),
|
||||
BinaryBuildWorkflow(
|
||||
os=OperatingSystem.LINUX,
|
||||
package_type="manywheel",
|
||||
build_configs=generate_binary_build_matrix.generate_wheels_matrix(
|
||||
OperatingSystem.LINUX,
|
||||
arches=["11.8", "12.1", "12.4"],
|
||||
python_versions=["3.9"],
|
||||
use_split_build=True,
|
||||
),
|
||||
ciflow_config=CIFlowConfig(
|
||||
labels={LABEL_CIFLOW_PERIODIC},
|
||||
),
|
||||
branches="main",
|
||||
use_split_build=True,
|
||||
),
|
||||
BinaryBuildWorkflow(
|
||||
os=OperatingSystem.LINUX,
|
||||
package_type="libtorch",
|
||||
|
14
.github/scripts/github_utils.py
vendored
14
.github/scripts/github_utils.py
vendored
@ -46,16 +46,24 @@ def gh_fetch_url_and_headers(
|
||||
with urlopen(Request(url, headers=headers, data=data_, method=method)) as conn:
|
||||
return conn.headers, reader(conn)
|
||||
except HTTPError as err:
|
||||
if err.code == 403 and all(
|
||||
key in err.headers for key in ["X-RateLimit-Limit", "X-RateLimit-Used"]
|
||||
if (
|
||||
err.code == 403
|
||||
and all(
|
||||
key in err.headers
|
||||
for key in ["X-RateLimit-Limit", "X-RateLimit-Remaining"]
|
||||
)
|
||||
and int(err.headers["X-RateLimit-Remaining"]) == 0
|
||||
):
|
||||
print(
|
||||
f"""Rate limit exceeded:
|
||||
f"""{url}
|
||||
Rate limit exceeded:
|
||||
Used: {err.headers['X-RateLimit-Used']}
|
||||
Limit: {err.headers['X-RateLimit-Limit']}
|
||||
Remaining: {err.headers['X-RateLimit-Remaining']}
|
||||
Resets at: {err.headers['x-RateLimit-Reset']}"""
|
||||
)
|
||||
else:
|
||||
print(f"Error fetching {url} {err}")
|
||||
raise
|
||||
|
||||
|
||||
|
1
.github/scripts/gitutils.py
vendored
1
.github/scripts/gitutils.py
vendored
@ -445,7 +445,6 @@ def retries_decorator(
|
||||
print(
|
||||
f'Attempt {idx} of {num_retries} to call {f.__name__} failed with "{e}"'
|
||||
)
|
||||
pass
|
||||
return cast(T, rc)
|
||||
|
||||
return wrapper
|
||||
|
131
.github/scripts/runner_determinator.py
vendored
131
.github/scripts/runner_determinator.py
vendored
@ -1,5 +1,29 @@
|
||||
# flake8: noqa: G004
|
||||
|
||||
"""
|
||||
This runner determinator is used to determine which set of runners to run a
|
||||
GitHub job on. It uses the first comment of a GitHub issue (by default
|
||||
https://github.com/pytorch/test-infra/issues/5132) as a user list to determine
|
||||
which users will get their jobs to run on experimental runners. This user list
|
||||
is also a comma separated list of additional features or experiments which the
|
||||
user could be opted in to.
|
||||
|
||||
The user list has the following rules:
|
||||
|
||||
- Users are GitHub usernames with the @ prefix
|
||||
- If the first line is a "*" then all users will use the new runners
|
||||
- If the first line is a "!" then all users will use the old runners
|
||||
- Each user is also a comma-separated list of features/experiments to enable
|
||||
- A "#" prefix indicates the user is opted out of the new runners but is opting
|
||||
into features/experiments.
|
||||
|
||||
Example user list:
|
||||
|
||||
@User1
|
||||
@User2,amz2023
|
||||
#@UserOptOutOfNewRunner,amz2023
|
||||
"""
|
||||
|
||||
import logging
|
||||
import os
|
||||
from argparse import ArgumentParser
|
||||
@ -14,7 +38,11 @@ WORKFLOW_LABEL_META = "" # use meta runners
|
||||
WORKFLOW_LABEL_LF = "lf." # use runners from the linux foundation
|
||||
WORKFLOW_LABEL_LF_CANARY = "lf.c." # use canary runners from the linux foundation
|
||||
|
||||
RUNNER_AMI_LEGACY = ""
|
||||
RUNNER_AMI_AMZ2023 = "amz2023"
|
||||
|
||||
GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT", "")
|
||||
GH_OUTPUT_KEY_AMI = "runner-ami"
|
||||
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
|
||||
|
||||
|
||||
@ -109,11 +137,14 @@ def get_issue(gh: Github, repo: str, issue_num: int) -> Issue:
|
||||
|
||||
|
||||
def get_potential_pr_author(
|
||||
gh: Github, repo: str, username: str, ref_type: str, ref_name: str
|
||||
github_token: str, repo: str, username: str, ref_type: str, ref_name: str
|
||||
) -> str:
|
||||
# If the trigger was a new tag added by a bot, this is a ciflow case
|
||||
# Fetch the actual username from the original PR. The PR number is
|
||||
# embedded in the tag name: ciflow/<name>/<pr-number>
|
||||
|
||||
gh = get_gh_client(github_token)
|
||||
|
||||
if username == "pytorch-bot[bot]" and ref_type == "tag":
|
||||
split_tag = ref_name.split("/")
|
||||
if (
|
||||
@ -135,22 +166,32 @@ def get_potential_pr_author(
|
||||
|
||||
|
||||
def is_exception_branch(branch: str) -> bool:
|
||||
"""
|
||||
Branches that get opted out of all experiments and should always use Meta runners
|
||||
"""
|
||||
return branch.split("/")[0] in {"main", "nightly", "release", "landchecks"}
|
||||
|
||||
|
||||
def get_workflow_type(issue: Issue, workflow_requestors: Iterable[str]) -> str:
|
||||
try:
|
||||
first_comment = issue.get_comments()[0].body.strip("\n\t ")
|
||||
def get_fleet(rollout_state: str, workflow_requestors: Iterable[str]) -> str:
|
||||
"""
|
||||
Determines if the job should run on the LF fleet or the Meta fleet
|
||||
|
||||
if first_comment[0] == "!":
|
||||
Returns:
|
||||
The appropriate label prefix for the runner, corresponding to the fleet to use.
|
||||
This gets prefixed to the very start of the runner label.
|
||||
"""
|
||||
|
||||
try:
|
||||
if rollout_state[0] == "!":
|
||||
log.info("LF Workflows are disabled for everyone. Using meta runners.")
|
||||
return WORKFLOW_LABEL_META
|
||||
elif first_comment[0] == "*":
|
||||
elif rollout_state[0] == "*":
|
||||
log.info("LF Workflows are enabled for everyone. Using LF runners.")
|
||||
return WORKFLOW_LABEL_LF
|
||||
else:
|
||||
all_opted_in_users = {
|
||||
usr_raw.strip("\n\t@ ") for usr_raw in first_comment.split()
|
||||
usr_raw.strip("\n\t@ ").split(",")[0]
|
||||
for usr_raw in rollout_state.split()
|
||||
}
|
||||
opted_in_requestors = {
|
||||
usr for usr in workflow_requestors if usr in all_opted_in_users
|
||||
@ -173,42 +214,106 @@ def get_workflow_type(issue: Issue, workflow_requestors: Iterable[str]) -> str:
|
||||
return WORKFLOW_LABEL_META
|
||||
|
||||
|
||||
def get_optin_feature(
|
||||
rollout_state: str, workflow_requestors: Iterable[str], feature: str, fallback: str
|
||||
) -> str:
|
||||
"""
|
||||
Used to dynamically opt in jobs to specific runner-type variants.
|
||||
|
||||
Returns:
|
||||
The runner-type's variant name if the user has opted in to the feature, otherwise returns an empty string.
|
||||
This variant name is prefixed to the runner-type in the label.
|
||||
"""
|
||||
try:
|
||||
userlist = {u.lstrip("#").strip("\n\t@ ") for u in rollout_state.split()}
|
||||
all_opted_in_users = set()
|
||||
for user in userlist:
|
||||
for i in user.split(","):
|
||||
if i == feature:
|
||||
all_opted_in_users.add(user.split(",")[0])
|
||||
opted_in_requestors = {
|
||||
usr for usr in workflow_requestors if usr in all_opted_in_users
|
||||
}
|
||||
|
||||
if opted_in_requestors:
|
||||
log.info(
|
||||
f"Feature {feature} is enabled for {', '.join(opted_in_requestors)}. Using feature {feature}."
|
||||
)
|
||||
return feature
|
||||
else:
|
||||
log.info(
|
||||
f"Feature {feature} is disabled for {', '.join(workflow_requestors)}. Using fallback \"{fallback}\"."
|
||||
)
|
||||
return fallback
|
||||
|
||||
except Exception as e:
|
||||
log.error(
|
||||
f'Failed to determine if user has opted-in to feature {feature}. Using fallback "{fallback}". Exception: {e}'
|
||||
)
|
||||
return fallback
|
||||
|
||||
|
||||
def get_rollout_state_from_issue(github_token: str, repo: str, issue_num: int) -> str:
|
||||
"""
|
||||
Gets the first comment of the issue, which contains the desired rollout state.
|
||||
|
||||
The default issue we use - https://github.com/pytorch/test-infra/issues/5132
|
||||
"""
|
||||
gh = get_gh_client(github_token)
|
||||
issue = get_issue(gh, repo, issue_num)
|
||||
return str(issue.get_comments()[0].body.strip("\n\t "))
|
||||
|
||||
|
||||
def main() -> None:
|
||||
args = parse_args()
|
||||
|
||||
if args.github_ref_type == "branch" and is_exception_branch(args.github_branch):
|
||||
log.info(f"Exception branch: '{args.github_branch}', using meta runners")
|
||||
label_type = WORKFLOW_LABEL_META
|
||||
runner_ami = RUNNER_AMI_LEGACY
|
||||
else:
|
||||
try:
|
||||
gh = get_gh_client(args.github_token)
|
||||
# The default issue we use - https://github.com/pytorch/test-infra/issues/5132
|
||||
issue = get_issue(gh, args.github_issue_repo, args.github_issue)
|
||||
rollout_state = get_rollout_state_from_issue(
|
||||
args.github_token, args.github_issue_repo, args.github_issue
|
||||
)
|
||||
|
||||
username = get_potential_pr_author(
|
||||
gh,
|
||||
args.github_token,
|
||||
args.github_repo,
|
||||
args.github_actor,
|
||||
args.github_ref_type,
|
||||
args.github_branch,
|
||||
)
|
||||
label_type = get_workflow_type(
|
||||
issue,
|
||||
|
||||
label_type = get_fleet(
|
||||
rollout_state,
|
||||
(
|
||||
args.github_issue_owner,
|
||||
username,
|
||||
),
|
||||
)
|
||||
runner_ami = get_optin_feature(
|
||||
rollout_state=rollout_state,
|
||||
workflow_requestors=(
|
||||
args.github_issue_owner,
|
||||
username,
|
||||
),
|
||||
feature=RUNNER_AMI_AMZ2023,
|
||||
fallback=RUNNER_AMI_LEGACY,
|
||||
)
|
||||
except Exception as e:
|
||||
log.error(
|
||||
f"Failed to get issue. Falling back to meta runners. Exception: {e}"
|
||||
)
|
||||
label_type = WORKFLOW_LABEL_META
|
||||
runner_ami = RUNNER_AMI_LEGACY
|
||||
|
||||
# For Canary builds use canary runners
|
||||
if args.github_repo == "pytorch/pytorch-canary" and label_type == WORKFLOW_LABEL_LF:
|
||||
label_type = WORKFLOW_LABEL_LF_CANARY
|
||||
|
||||
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, label_type)
|
||||
set_github_output(GH_OUTPUT_KEY_AMI, runner_ami)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
39
.github/scripts/s390x-ci/README.md
vendored
39
.github/scripts/s390x-ci/README.md
vendored
@ -3,7 +3,7 @@
|
||||
## Install prerequisites.
|
||||
|
||||
```
|
||||
$ sudo dnf install docker
|
||||
$ sudo dnf install podman podman-docker jq
|
||||
```
|
||||
|
||||
## Add services.
|
||||
@ -27,23 +27,48 @@ $ sudo systemctl enable --now qemu-user-static
|
||||
|
||||
## Rebuild the image
|
||||
|
||||
In order to build or update the `iiilinuxibmcom/actions-runner` image, e.g. to get the
|
||||
latest OS security fixes, use the following commands:
|
||||
First build s390x builder image `docker.io/pytorch/manylinuxs390x-builder`,
|
||||
using following commands:
|
||||
|
||||
```
|
||||
$ cd ~
|
||||
$ git clone https://github.com/pytorch/pytorch
|
||||
$ cd pytorch
|
||||
$ git submodule update --init --recursive
|
||||
$ GPU_ARCH_TYPE=cpu-s390x "$(pwd)/.ci/docker/manywheel/build.sh" manylinuxs390x-builder
|
||||
$ docker image tag localhost/pytorch/manylinuxs390x-builder docker.io/pytorch/manylinuxs390x-builder:cpu-s390x
|
||||
$ docker image save -o ~/manywheel-s390x.tar docker.io/pytorch/manylinuxs390x-builder:cpu-s390x
|
||||
```
|
||||
|
||||
Next step is to build `actions-runner` image using:
|
||||
|
||||
```
|
||||
$ cd self-hosted-builder
|
||||
$ sudo docker build \
|
||||
--build-arg repo=<owner>/<name> \
|
||||
--build-arg token=<***> \
|
||||
--pull \
|
||||
-f actions-runner.Dockerfile \
|
||||
-t iiilinuxibmcom/actions-runner \
|
||||
-t iiilinuxibmcom/actions-runner.<name> \
|
||||
.
|
||||
```
|
||||
|
||||
If it fails, ensure that selinux doesn't prevent it from working.
|
||||
If there are failures, ensure that selinux doesn't prevent it from working.
|
||||
In worst case, selinux can be disabled with `setenforce 0`.
|
||||
|
||||
Now prepare all necessary files for runner registration:
|
||||
|
||||
```
|
||||
$ sudo mkdir -p /etc/actions-runner/<name>
|
||||
$ sudo chmod 700 /etc/actions-runner/<name>
|
||||
$ sudo /bin/cp <github_app_private_key_file> /etc/actions-runner/<name>/key_private.pem
|
||||
$ sudo echo <github_app_id> | sudo tee /etc/actions-runner/<name>/appid.env
|
||||
$ sudo echo <github_app_install_id> | sudo tee /etc/actions-runner/<name>/installid.env
|
||||
$ sudo echo NAME=<worker_name> | sudo tee /etc/actions-runner/<name>/env
|
||||
$ sudo echo ORG=<github_org> | sudo tee -a /etc/actions-runner/<name>/env
|
||||
$ cd self-hosted-builder
|
||||
$ sudo /bin/cp helpers/*.sh /usr/local/bin/
|
||||
$ sudo chmod 755 /usr/local/bin/app_token.sh /usr/local/bin/gh_token_generator.sh
|
||||
```
|
||||
|
||||
## Autostart the runner.
|
||||
|
||||
```
|
||||
|
@ -1,12 +1,12 @@
|
||||
# Self-Hosted IBM Z Github Actions Runner.
|
||||
|
||||
# Temporary image: amd64 dependencies.
|
||||
FROM docker.io/amd64/ubuntu:22.04 as ld-prefix
|
||||
FROM docker.io/amd64/ubuntu:23.10 as ld-prefix
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get -y install ca-certificates libicu70 libssl3
|
||||
RUN apt-get update && apt-get -y install ca-certificates libicu72 libssl3
|
||||
|
||||
# Main image.
|
||||
FROM docker.io/s390x/ubuntu:22.04
|
||||
FROM docker.io/s390x/ubuntu:23.10
|
||||
|
||||
# Packages for pytorch building and testing.
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
@ -16,6 +16,7 @@ RUN apt-get update && apt-get -y install \
|
||||
gcc \
|
||||
git \
|
||||
jq \
|
||||
zip \
|
||||
libxml2-dev \
|
||||
libxslt-dev \
|
||||
ninja-build \
|
||||
@ -43,24 +44,28 @@ COPY fs/ /
|
||||
|
||||
RUN chmod +x /usr/bin/actions-runner /usr/bin/entrypoint
|
||||
|
||||
# install podman
|
||||
RUN apt -y install podman podman-docker
|
||||
|
||||
# amd64 Github Actions Runner.
|
||||
RUN useradd -m actions-runner
|
||||
USER actions-runner
|
||||
WORKDIR /home/actions-runner
|
||||
RUN curl -L https://github.com/actions/runner/releases/download/v2.309.0/actions-runner-linux-x64-2.309.0.tar.gz | tar -xz
|
||||
|
||||
# repository
|
||||
ARG repo
|
||||
# set up python virtual environment which is later used by runner.
|
||||
# build workflows use "python -m pip install ...",
|
||||
# and it doesn't work for non-root user
|
||||
RUN virtualenv --system-site-packages venv
|
||||
|
||||
# repository token
|
||||
ARG token
|
||||
# copy prebuilt manywheel docker image for builds and tests
|
||||
# build command is:
|
||||
# GPU_ARCH_TYPE=cpu-s390x "$(pwd)/manywheel/build_docker.sh"
|
||||
# and save command is:
|
||||
# docker image save -o manywheel-s390x.tar pytorch/manylinuxs390x-builder:cpu-s390x
|
||||
#
|
||||
COPY --chown=actions-runner:actions-runner manywheel-s390x.tar /home/actions-runner/manywheel-s390x.tar
|
||||
|
||||
RUN ./config.sh \
|
||||
--unattended \
|
||||
--url "https://github.com/${repo}" \
|
||||
--token "${token}" \
|
||||
--no-default-labels \
|
||||
--labels self-hosted,linux.s390x
|
||||
RUN curl -L https://github.com/actions/runner/releases/download/v2.317.0/actions-runner-linux-x64-2.317.0.tar.gz | tar -xz
|
||||
|
||||
ENTRYPOINT ["/usr/bin/entrypoint"]
|
||||
CMD ["/usr/bin/actions-runner"]
|
||||
|
@ -8,12 +8,16 @@ StartLimitIntervalSec=0
|
||||
Type=simple
|
||||
Restart=always
|
||||
ExecStartPre=-/usr/bin/docker rm --force actions-runner.%i
|
||||
ExecStartPre=-/usr/local/bin/gh_token_generator.sh /etc/actions-runner/%i/appid.env /etc/actions-runner/%i/installid.env /etc/actions-runner/%i/key_private.pem /etc/actions-runner/%i/ghtoken.env
|
||||
ExecStart=/usr/bin/docker run \
|
||||
--env-file=/etc/actions-runner/%i/env \
|
||||
--env-file=/etc/actions-runner/%i/ghtoken.env \
|
||||
--init \
|
||||
--interactive \
|
||||
--name=actions-runner.%i \
|
||||
--rm \
|
||||
iiilinuxibmcom/actions-runner
|
||||
--privileged \
|
||||
iiilinuxibmcom/actions-runner.%i
|
||||
ExecStop=/bin/sh -c "docker exec actions-runner.%i kill -INT -- -1"
|
||||
ExecStop=/bin/sh -c "docker wait actions-runner.%i"
|
||||
ExecStop=/bin/sh -c "docker rm actions-runner.%i"
|
||||
|
@ -2,5 +2,45 @@
|
||||
|
||||
set -e -u
|
||||
|
||||
# first import docker image
|
||||
if [ -f ./manywheel-s390x.tar ] ; then
|
||||
docker image load --input manywheel-s390x.tar
|
||||
docker image tag docker.io/pytorch/manylinuxs390x-builder:cpu-s390x docker.io/pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||
rm -f manywheel-s390x.tar
|
||||
fi
|
||||
|
||||
token_file=registration-token.json
|
||||
|
||||
# Generate registration token
|
||||
curl \
|
||||
-X POST \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
|
||||
"https://api.github.com/orgs/${ORG}/actions/runners/registration-token" \
|
||||
-o "$token_file"
|
||||
|
||||
unset ACCESS_TOKEN
|
||||
|
||||
# register runner as ephemeral runner
|
||||
# it does one job, stops and unregisters
|
||||
registration_token=$(jq --raw-output .token "$token_file")
|
||||
|
||||
./config.sh \
|
||||
--unattended \
|
||||
--ephemeral \
|
||||
--url "https://github.com/${ORG}" \
|
||||
--token "${registration_token}" \
|
||||
--name "${NAME}" \
|
||||
--no-default-labels \
|
||||
--labels self-hosted,linux.s390x
|
||||
|
||||
unset registration_token
|
||||
rm -f "$token_file"
|
||||
|
||||
# enter into python virtual environment.
|
||||
# build workflows use "python -m pip install ...",
|
||||
# and it doesn't work for non-root user
|
||||
source venv/bin/activate
|
||||
|
||||
# Run one job.
|
||||
./run.sh --once
|
||||
./run.sh
|
||||
|
84
.github/scripts/s390x-ci/self-hosted-builder/helpers/app_token.sh
vendored
Executable file
84
.github/scripts/s390x-ci/self-hosted-builder/helpers/app_token.sh
vendored
Executable file
@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Request an ACCESS_TOKEN to be used by a GitHub APP
|
||||
# Environment variable that need to be set up:
|
||||
# * APP_ID, the GitHub's app ID
|
||||
# * INSTALL_ID, the Github's app's installation ID
|
||||
# * APP_PRIVATE_KEY, the content of GitHub app's private key in PEM format.
|
||||
#
|
||||
# https://github.com/orgs/community/discussions/24743#discussioncomment-3245300
|
||||
#
|
||||
|
||||
set -o pipefail
|
||||
|
||||
_GITHUB_HOST=${GITHUB_HOST:="github.com"}
|
||||
|
||||
# If URL is not github.com then use the enterprise api endpoint
|
||||
if [[ ${GITHUB_HOST} = "github.com" ]]; then
|
||||
URI="https://api.${_GITHUB_HOST}"
|
||||
else
|
||||
URI="https://${_GITHUB_HOST}/api/v3"
|
||||
fi
|
||||
|
||||
API_VERSION=v3
|
||||
API_HEADER="Accept: application/vnd.github.${API_VERSION}+json"
|
||||
CONTENT_LENGTH_HEADER="Content-Length: 0"
|
||||
APP_INSTALLATIONS_URI="${URI}/app/installations"
|
||||
|
||||
|
||||
# JWT parameters based off
|
||||
# https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app
|
||||
#
|
||||
# JWT token issuance and expiration parameters
|
||||
JWT_IAT_DRIFT=60
|
||||
JWT_EXP_DELTA=600
|
||||
|
||||
JWT_JOSE_HEADER='{
|
||||
"alg": "RS256",
|
||||
"typ": "JWT"
|
||||
}'
|
||||
|
||||
|
||||
build_jwt_payload() {
|
||||
now=$(date +%s)
|
||||
iat=$((now - JWT_IAT_DRIFT))
|
||||
jq -c \
|
||||
--arg iat_str "${iat}" \
|
||||
--arg exp_delta_str "${JWT_EXP_DELTA}" \
|
||||
--arg app_id_str "${APP_ID}" \
|
||||
'
|
||||
($iat_str | tonumber) as $iat
|
||||
| ($exp_delta_str | tonumber) as $exp_delta
|
||||
| ($app_id_str | tonumber) as $app_id
|
||||
| .iat = $iat
|
||||
| .exp = ($iat + $exp_delta)
|
||||
| .iss = $app_id
|
||||
' <<< "{}" | tr -d '\n'
|
||||
}
|
||||
|
||||
base64url() {
|
||||
base64 | tr '+/' '-_' | tr -d '=\n'
|
||||
}
|
||||
|
||||
rs256_sign() {
|
||||
openssl dgst -binary -sha256 -sign <(echo "$1")
|
||||
}
|
||||
|
||||
request_access_token() {
|
||||
jwt_payload=$(build_jwt_payload)
|
||||
encoded_jwt_parts=$(base64url <<<"${JWT_JOSE_HEADER}").$(base64url <<<"${jwt_payload}")
|
||||
encoded_mac=$(echo -n "$encoded_jwt_parts" | rs256_sign "${APP_PRIVATE_KEY}" | base64url)
|
||||
generated_jwt="${encoded_jwt_parts}.${encoded_mac}"
|
||||
|
||||
auth_header="Authorization: Bearer ${generated_jwt}"
|
||||
|
||||
app_installations_response=$(curl -sX POST \
|
||||
-H "${auth_header}" \
|
||||
-H "${API_HEADER}" \
|
||||
--header "X-GitHub-Api-Version: 2022-11-28" \
|
||||
--url "https://api.github.com/app/installations/${INSTALL_ID}/access_tokens" \
|
||||
)
|
||||
echo "$app_installations_response" | jq --raw-output '.token'
|
||||
}
|
||||
|
||||
request_access_token
|
10
.github/scripts/s390x-ci/self-hosted-builder/helpers/gh_token_generator.sh
vendored
Executable file
10
.github/scripts/s390x-ci/self-hosted-builder/helpers/gh_token_generator.sh
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
APP_ID=$1
|
||||
INSTALL_ID=$2
|
||||
APP_PRIVATE_KEY=$3
|
||||
DST_FILE="$4"
|
||||
|
||||
ACCESS_TOKEN="$(APP_ID="$(<"${APP_ID}")" INSTALL_ID="$(<"${INSTALL_ID}")" APP_PRIVATE_KEY="$(<"${APP_PRIVATE_KEY}")" "${SCRIPT_DIR}/app_token.sh")"
|
||||
echo "ACCESS_TOKEN=${ACCESS_TOKEN}" > "${DST_FILE}"
|
1
.github/scripts/test_check_labels.py
vendored
1
.github/scripts/test_check_labels.py
vendored
@ -18,6 +18,7 @@ def mock_parse_args() -> object:
|
||||
class Object:
|
||||
def __init__(self) -> None:
|
||||
self.pr_num = 76123
|
||||
self.exit_non_zero = False
|
||||
|
||||
return Object()
|
||||
|
||||
|
15
.github/scripts/trymerge.py
vendored
15
.github/scripts/trymerge.py
vendored
@ -1116,15 +1116,20 @@ class GitHubPR:
|
||||
msg = self.get_title() + f" (#{self.pr_num})\n\n"
|
||||
msg += msg_body
|
||||
|
||||
# Mention PR co-authors
|
||||
for author_login, author_name in self.get_authors().items():
|
||||
if author_login != self.get_pr_creator_login():
|
||||
msg += f"\nCo-authored-by: {author_name}"
|
||||
|
||||
msg += f"\nPull Request resolved: {self.get_pr_url()}\n"
|
||||
msg += f"Approved by: {approved_by_urls}\n"
|
||||
if ghstack_deps:
|
||||
msg += f"ghstack dependencies: {', '.join([f'#{pr.pr_num}' for pr in ghstack_deps])}\n"
|
||||
|
||||
# Mention PR co-authors, which should be at the end of the message
|
||||
# And separated from the body by two newlines
|
||||
first_coauthor = True
|
||||
for author_login, author_name in self.get_authors().items():
|
||||
if author_login != self.get_pr_creator_login():
|
||||
if first_coauthor:
|
||||
msg, first_coauthor = (msg + "\n", False)
|
||||
msg += f"\nCo-authored-by: {author_name}"
|
||||
|
||||
return msg
|
||||
|
||||
def add_numbered_label(self, label_base: str, dry_run: bool) -> None:
|
||||
|
8
.github/templates/common.yml.j2
vendored
8
.github/templates/common.yml.j2
vendored
@ -1,14 +1,14 @@
|
||||
{%- set upload_artifact_s3_action = "seemethere/upload-artifact-s3@v5" -%}
|
||||
{%- set download_artifact_s3_action = "seemethere/download-artifact-s3@v4" -%}
|
||||
{%- set upload_artifact_action = "actions/upload-artifact@v3" -%}
|
||||
{%- set download_artifact_action = "actions/download-artifact@v3" -%}
|
||||
{%- set upload_artifact_action = "actions/upload-artifact@v4.4.0" -%}
|
||||
{%- set download_artifact_action = "actions/download-artifact@v4.1.7" -%}
|
||||
|
||||
{%- set timeout_minutes = 240 -%}
|
||||
|
||||
# NOTE: If testing pytorch/builder changes you can change this variable to change what pytorch/builder reference
|
||||
# the binary builds will check out
|
||||
{%- set builder_repo = "pytorch/builder" -%}
|
||||
{%- set builder_branch = "main" -%}
|
||||
{%- set builder_branch = "release/2.5" -%}
|
||||
|
||||
{%- macro concurrency(build_environment) -%}
|
||||
concurrency:
|
||||
@ -36,7 +36,7 @@ concurrency:
|
||||
{%- macro setup_ec2_windows() -%}
|
||||
!{{ display_ec2_information() }}
|
||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
continue-on-error: true
|
||||
with:
|
||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
@ -52,19 +52,32 @@ env:
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
|
||||
jobs:
|
||||
get-label-type:
|
||||
name: get-label-type
|
||||
uses: ./.github/workflows/_runner-determinator.yml
|
||||
with:
|
||||
triggering_actor: ${{ github.triggering_actor }}
|
||||
issue_owner: ${{ github.event.pull_request.user.login || github.event.issue.user.login }}
|
||||
curr_branch: ${{ github.head_ref || github.ref_name }}
|
||||
curr_ref_type: ${{ github.ref_type }}
|
||||
|
||||
{%- for config in build_configs %}
|
||||
!{{ config["build_name"] }}-build:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
uses: ./.github/workflows/_binary-build-linux.yml
|
||||
needs: get-label-type
|
||||
with:!{{ upload.binary_env_as_input(config) }}
|
||||
{%- if "aarch64" in build_environment %}
|
||||
runs_on: linux.arm64.m7g.4xlarge
|
||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||
ALPINE_IMAGE: "arm64v8/alpine"
|
||||
{%- elif "s390x" in build_environment %}
|
||||
runs_on: linux.s390x
|
||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||
{%- elif "conda" in build_environment and config["gpu_arch_type"] == "cuda" %}
|
||||
runs_on: linux.24xlarge
|
||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||
runs_on: linux.24xlarge.ephemeral
|
||||
{%- else %}
|
||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||
{%- endif %}
|
||||
build_name: !{{ config["build_name"] }}
|
||||
build_environment: !{{ build_environment }}
|
||||
@ -80,7 +93,9 @@ jobs:
|
||||
{%- if config["gpu_arch_type"] != "cuda-aarch64" %}
|
||||
!{{ config["build_name"] }}-test: # Testing
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
needs: !{{ config["build_name"] }}-build
|
||||
needs:
|
||||
- !{{ config["build_name"] }}-build
|
||||
- get-label-type
|
||||
{%- if config["gpu_arch_type"] not in ["rocm", "xpu"] %}
|
||||
uses: ./.github/workflows/_binary-test-linux.yml
|
||||
with:!{{ upload.binary_env_as_input(config) }}
|
||||
@ -95,8 +110,10 @@ jobs:
|
||||
{%- elif config["gpu_arch_type"] == "rocm" %}
|
||||
runs_on: linux.rocm.gpu
|
||||
{%- elif config["gpu_arch_type"] == "cuda" %}
|
||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||
runs_on: linux.4xlarge.nvidia.gpu
|
||||
{%- else %}
|
||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||
runs_on: linux.4xlarge
|
||||
{%- endif %}
|
||||
secrets:
|
||||
@ -125,10 +142,10 @@ jobs:
|
||||
with:
|
||||
name: !{{ config["build_name"] }}
|
||||
path: "${{ runner.temp }}/artifacts/"
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch") }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
|
||||
- name: Pull Docker image
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: !{{ config["container_image"] }}
|
||||
- name: Test Pytorch binary
|
||||
@ -147,13 +164,13 @@ jobs:
|
||||
with:
|
||||
name: !{{ config["build_name"] }}
|
||||
path: "${{ runner.temp }}/artifacts/"
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch") }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
|
||||
- name: ROCm set GPU_FLAG
|
||||
run: |
|
||||
echo "GPU_FLAG=--device=/dev/mem --device=/dev/kfd --device=/dev/dri --group-add video --group-add daemon" >> "${GITHUB_ENV}"
|
||||
- name: Pull Docker image
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: !{{ config["container_image"] }}
|
||||
- name: Test Pytorch binary
|
||||
|
@ -64,9 +64,6 @@ jobs:
|
||||
{%- if config.pytorch_extra_install_requirements is defined and config.pytorch_extra_install_requirements|d('')|length > 0 %}
|
||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: !{{ config.pytorch_extra_install_requirements }}
|
||||
{%- endif %}
|
||||
# For sccache access (only on non-forked PRs)
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
|
||||
steps:
|
||||
!{{ set_runner_specific_vars() }}
|
||||
- name: Install conda and dependencies
|
||||
@ -81,10 +78,10 @@ jobs:
|
||||
elif [ -d "/Applications/Xcode_13.3.1.app" ]; then
|
||||
echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
|
||||
fi
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch") }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
|
||||
- name: Install sccache (only for non-forked PRs, and pushes to trunk)
|
||||
uses: nick-fields/retry@v2.8.2
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||
with:
|
||||
timeout_minutes: 5
|
||||
@ -104,7 +101,7 @@ jobs:
|
||||
# shellcheck disable=SC1091
|
||||
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_macos_build.sh"
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4.4.0
|
||||
if: always()
|
||||
with:
|
||||
name: !{{ config["build_name"] }}
|
||||
|
2
.github/templates/upload.yml.j2
vendored
2
.github/templates/upload.yml.j2
vendored
@ -45,7 +45,7 @@
|
||||
{%- if is_windows %}
|
||||
# This is a dummy value for libtorch to work correctly with our batch scripts
|
||||
# without this value pip does not get installed for some reason
|
||||
DESIRED_PYTHON: "3.8"
|
||||
DESIRED_PYTHON: "3.9"
|
||||
{%- endif %}
|
||||
|
||||
{%- else %}
|
||||
|
@ -53,10 +53,24 @@ env:
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
|
||||
jobs:
|
||||
get-label-type:
|
||||
name: get-label-type
|
||||
uses: ./.github/workflows/_runner-determinator.yml
|
||||
with:
|
||||
triggering_actor: ${{ github.triggering_actor }}
|
||||
issue_owner: ${{ github.event.pull_request.user.login || github.event.issue.user.login }}
|
||||
curr_branch: ${{ github.head_ref || github.ref_name }}
|
||||
curr_ref_type: ${{ github.ref_type }}
|
||||
|
||||
{%- for config in build_configs %}
|
||||
!{{ config["build_name"] }}-build:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: windows.4xlarge.nonephemeral
|
||||
needs: get-label-type
|
||||
{%- if branches == "nightly" %}
|
||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge"
|
||||
{%- else %}
|
||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
|
||||
{%- endif %}
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
!{{ upload.binary_env(config, True) }}
|
||||
{%- if config.pytorch_extra_install_requirements is defined and config.pytorch_extra_install_requirements|d('')|length > 0 %}
|
||||
@ -65,8 +79,8 @@ jobs:
|
||||
steps:
|
||||
!{{ common.setup_ec2_windows() }}
|
||||
!{{ set_runner_specific_vars() }}
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch") }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
|
||||
- name: Populate binary env
|
||||
shell: bash
|
||||
run: |
|
||||
@ -85,15 +99,17 @@ jobs:
|
||||
!{{ common.wait_and_kill_ssh_windows('pytorch') }}
|
||||
!{{ config["build_name"] }}-test: # Testing
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
needs: !{{ config["build_name"] }}-build
|
||||
needs:
|
||||
- !{{ config["build_name"] }}-build
|
||||
- get-label-type
|
||||
{%- if config["gpu_arch_type"] == "cuda" %}
|
||||
{%- if branches == "nightly" %}
|
||||
runs-on: windows.8xlarge.nvidia.gpu
|
||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
||||
{%- else %}
|
||||
runs-on: windows.8xlarge.nvidia.gpu.nonephemeral
|
||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge.nonephemeral"
|
||||
{%- endif %}
|
||||
{%- else %}
|
||||
runs-on: windows.4xlarge.nonephemeral
|
||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
|
||||
{%- endif %}
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
!{{ upload.binary_env(config, True) }}
|
||||
@ -105,8 +121,8 @@ jobs:
|
||||
with:
|
||||
name: !{{ config["build_name"] }}
|
||||
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch") }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
|
||||
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
|
||||
- name: Populate binary env
|
||||
shell: bash
|
||||
run: |
|
||||
|
12
.github/workflows/_android-build-test.yml
vendored
12
.github/workflows/_android-build-test.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
submodules: false
|
||||
@ -59,25 +59,25 @@ jobs:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
steps:
|
||||
- name: Setup SSH (Click me for login details)
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
with:
|
||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# [see note: pytorch repo ref]
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
|
||||
- name: Setup Linux
|
||||
uses: ./.github/actions/setup-linux
|
||||
|
||||
- name: Calculate docker image
|
||||
id: calculate-docker-image
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
|
||||
with:
|
||||
docker-image-name: ${{ inputs.docker-image-name }}
|
||||
|
||||
- name: Pull docker image
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||
|
||||
@ -141,5 +141,5 @@ jobs:
|
||||
if: always()
|
||||
|
||||
- name: Teardown Linux
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
|
||||
if: always()
|
||||
|
12
.github/workflows/_android-full-build-test.yml
vendored
12
.github/workflows/_android-full-build-test.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
submodules: false
|
||||
@ -59,25 +59,25 @@ jobs:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
steps:
|
||||
- name: Setup SSH (Click me for login details)
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
with:
|
||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# [see note: pytorch repo ref]
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
|
||||
- name: Setup Linux
|
||||
uses: ./.github/actions/setup-linux
|
||||
|
||||
- name: Calculate docker image
|
||||
id: calculate-docker-image
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
|
||||
with:
|
||||
docker-image-name: ${{ inputs.docker-image-name }}
|
||||
|
||||
- name: Pull docker image
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||
|
||||
@ -186,5 +186,5 @@ jobs:
|
||||
if: always()
|
||||
|
||||
- name: Teardown Linux
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
|
||||
if: always()
|
||||
|
14
.github/workflows/_bazel-build-test.yml
vendored
14
.github/workflows/_bazel-build-test.yml
vendored
@ -47,7 +47,7 @@ jobs:
|
||||
reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
submodules: false
|
||||
@ -69,25 +69,25 @@ jobs:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
steps:
|
||||
- name: Setup SSH (Click me for login details)
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
with:
|
||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# [see note: pytorch repo ref]
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
|
||||
- name: Setup Linux
|
||||
uses: ./.github/actions/setup-linux
|
||||
|
||||
- name: Calculate docker image
|
||||
id: calculate-docker-image
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
|
||||
with:
|
||||
docker-image-name: ${{ inputs.docker-image-name }}
|
||||
|
||||
- name: Pull docker image
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||
|
||||
@ -97,7 +97,7 @@ jobs:
|
||||
run: echo "IN_ARC_RUNNER=$([ -f /.inarc ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
||||
uses: pytorch/test-infra/.github/actions/setup-nvidia@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.5
|
||||
if: ${{ inputs.cuda-version != 'cpu' && steps.check_arc_runner.outputs.IN_ARC_RUNNER == 'false' }}
|
||||
|
||||
- name: Output disk space left
|
||||
@ -206,5 +206,5 @@ jobs:
|
||||
file-suffix: bazel-${{ github.job }}_${{ steps.get-job-id.outputs.job-id }}
|
||||
|
||||
- name: Teardown Linux
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
|
||||
if: always()
|
||||
|
24
.github/workflows/_binary-build-linux.yml
vendored
24
.github/workflows/_binary-build-linux.yml
vendored
@ -11,11 +11,16 @@ on:
|
||||
required: true
|
||||
type: string
|
||||
description: The build environment
|
||||
runner_prefix:
|
||||
required: false
|
||||
default: ""
|
||||
type: string
|
||||
description: prefix for runner label
|
||||
runs_on:
|
||||
required: false
|
||||
default: linux.12xlarge
|
||||
default: linux.12xlarge.ephemeral
|
||||
type: string
|
||||
description: Hardware to run this "build"job on, linux.12xlarge or linux.arm64.2xlarge.
|
||||
description: Hardware to run this "build" job on, linux.12xlarge or linux.arm64.2xlarge.
|
||||
timeout-minutes:
|
||||
required: false
|
||||
default: 210
|
||||
@ -89,7 +94,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ inputs.runs_on }}
|
||||
runs-on: ${{ inputs.runner_prefix}}${{ inputs.runs_on }}
|
||||
timeout-minutes: ${{ inputs.timeout-minutes }}
|
||||
env:
|
||||
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
|
||||
@ -154,13 +159,13 @@ jobs:
|
||||
|
||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||
if: inputs.build_environment != 'linux-s390x-binary-manywheel'
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
continue-on-error: true
|
||||
with:
|
||||
github-secret: ${{ secrets.github-token }}
|
||||
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' || inputs.build_environment == 'linux-s390x-binary-manywheel' }}
|
||||
|
||||
@ -190,7 +195,6 @@ jobs:
|
||||
- name: Checkout PyTorch to pytorch dir
|
||||
uses: malfet/checkout@silent-checkout
|
||||
with:
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||
submodules: recursive
|
||||
path: pytorch
|
||||
quiet-checkout: true
|
||||
@ -204,7 +208,7 @@ jobs:
|
||||
- name: Checkout pytorch/builder to builder dir
|
||||
uses: malfet/checkout@silent-checkout
|
||||
with:
|
||||
ref: main
|
||||
ref: release/2.5
|
||||
submodules: recursive
|
||||
repository: pytorch/builder
|
||||
path: builder
|
||||
@ -230,7 +234,7 @@ jobs:
|
||||
|
||||
- name: Pull Docker image
|
||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' && inputs.build_environment != 'linux-s390x-binary-manywheel' }}
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: ${{ inputs.DOCKER_IMAGE }}
|
||||
|
||||
@ -278,7 +282,7 @@ jobs:
|
||||
# Ensure the working directory gets chowned back to the current user
|
||||
docker run --rm -v "${RUNNER_TEMP}/artifacts:/v" -w /v "${ALPINE_IMAGE}" chown -R "$(id -u):$(id -g)" .
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4.4.0
|
||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
||||
with:
|
||||
name: ${{ inputs.build_name }}
|
||||
@ -288,7 +292,7 @@ jobs:
|
||||
|
||||
- name: Teardown Linux
|
||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
|
||||
|
||||
- name: Chown workspace
|
||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
||||
|
22
.github/workflows/_binary-test-linux.yml
vendored
22
.github/workflows/_binary-test-linux.yml
vendored
@ -59,6 +59,11 @@ on:
|
||||
required: false
|
||||
type: string
|
||||
description: Desired python version
|
||||
runner_prefix:
|
||||
required: false
|
||||
default: ""
|
||||
type: string
|
||||
description: prefix for runner label
|
||||
runs_on:
|
||||
required: true
|
||||
type: string
|
||||
@ -77,7 +82,7 @@ on:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ${{ inputs.runs_on }}
|
||||
runs-on: ${{ inputs.runner_prefix}}${{ inputs.runs_on }}
|
||||
timeout-minutes: 240
|
||||
env:
|
||||
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
|
||||
@ -137,14 +142,14 @@ jobs:
|
||||
|
||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||
if: inputs.build_environment != 'linux-s390x-binary-manywheel'
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
continue-on-error: true
|
||||
with:
|
||||
github-secret: ${{ secrets.github-token }}
|
||||
|
||||
# Setup the environment
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' || inputs.build_environment == 'linux-s390x-binary-manywheel' }}
|
||||
|
||||
@ -167,7 +172,6 @@ jobs:
|
||||
- name: Checkout PyTorch to pytorch dir
|
||||
uses: malfet/checkout@silent-checkout
|
||||
with:
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||
submodules: recursive
|
||||
path: pytorch
|
||||
|
||||
@ -180,7 +184,7 @@ jobs:
|
||||
- name: Checkout pytorch/builder to builder dir
|
||||
uses: malfet/checkout@silent-checkout
|
||||
with:
|
||||
ref: main
|
||||
ref: release/2.5
|
||||
submodules: recursive
|
||||
repository: pytorch/builder
|
||||
path: builder
|
||||
@ -205,18 +209,18 @@ jobs:
|
||||
|
||||
- name: Download Build Artifacts
|
||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4.1.7
|
||||
with:
|
||||
name: ${{ inputs.build_name }}
|
||||
path: "${{ runner.temp }}/artifacts/"
|
||||
|
||||
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
||||
uses: pytorch/test-infra/.github/actions/setup-nvidia@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.5
|
||||
if: ${{ inputs.GPU_ARCH_TYPE == 'cuda' && steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
||||
|
||||
- name: Pull Docker image
|
||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' && inputs.build_environment != 'linux-s390x-binary-manywheel' }}
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: ${{ inputs.DOCKER_IMAGE }}
|
||||
|
||||
@ -226,7 +230,7 @@ jobs:
|
||||
|
||||
- name: Teardown Linux
|
||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
|
||||
|
||||
- name: Chown workspace
|
||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
||||
|
4
.github/workflows/_binary-upload.yml
vendored
4
.github/workflows/_binary-upload.yml
vendored
@ -103,7 +103,7 @@ jobs:
|
||||
USE_SPLIT_BUILD: ${{ inputs.use_split_build }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
no-sudo: true
|
||||
|
||||
@ -126,7 +126,7 @@ jobs:
|
||||
# NB: When the previous build job is skipped, there won't be any artifacts and
|
||||
# this step will fail. Binary build jobs can only be skipped on CI, not nightly
|
||||
continue-on-error: true
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4.1.7
|
||||
with:
|
||||
name: ${{ inputs.build_name }}
|
||||
path: "${{ runner.temp }}/artifacts/"
|
||||
|
17
.github/workflows/_buck-build-test.yml
vendored
17
.github/workflows/_buck-build-test.yml
vendored
@ -8,6 +8,11 @@ on:
|
||||
type: string
|
||||
description: |
|
||||
A JSON description of what configs to run later on.
|
||||
runner_prefix:
|
||||
required: false
|
||||
type: string
|
||||
description: |
|
||||
Prefix for runner label
|
||||
|
||||
defaults:
|
||||
run:
|
||||
@ -16,14 +21,14 @@ defaults:
|
||||
jobs:
|
||||
filter:
|
||||
if: github.repository_owner == 'pytorch'
|
||||
runs-on: [self-hosted, linux.large]
|
||||
runs-on: [self-hosted, "${{ inputs.runner_prefix }}linux.large"]
|
||||
outputs:
|
||||
test-matrix: ${{ steps.filter.outputs.test-matrix }}
|
||||
is-test-matrix-empty: ${{ steps.filter.outputs.is-test-matrix-empty }}
|
||||
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
submodules: false
|
||||
@ -44,7 +49,7 @@ jobs:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
|
||||
- name: Set up JDK 8
|
||||
uses: actions/setup-java@v3
|
||||
@ -53,13 +58,13 @@ jobs:
|
||||
distribution: 'temurin'
|
||||
|
||||
- name: Setup miniconda
|
||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
|
||||
with:
|
||||
python-version: 3.8
|
||||
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
||||
|
||||
- name: Install Buck
|
||||
uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
with:
|
||||
timeout_minutes: 10
|
||||
max_attempts: 5
|
||||
@ -69,7 +74,7 @@ jobs:
|
||||
sudo apt install ./buck.2021.01.12.01_all.deb
|
||||
|
||||
- name: Download third party libraries and generate wrappers
|
||||
uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
with:
|
||||
timeout_minutes: 10
|
||||
max_attempts: 5
|
||||
|
10
.github/workflows/_docs.yml
vendored
10
.github/workflows/_docs.yml
vendored
@ -84,7 +84,7 @@ jobs:
|
||||
name: build-docs-${{ matrix.docs_type }}-${{ inputs.push }}
|
||||
steps:
|
||||
- name: Setup SSH (Click me for login details)
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
|
||||
with:
|
||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||
instructions: |
|
||||
@ -95,7 +95,7 @@ jobs:
|
||||
|
||||
# [see note: pytorch repo ref]
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
|
||||
- name: Setup Linux
|
||||
uses: ./.github/actions/setup-linux
|
||||
@ -110,12 +110,12 @@ jobs:
|
||||
|
||||
- name: Calculate docker image
|
||||
id: calculate-docker-image
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
|
||||
with:
|
||||
docker-image-name: ${{ inputs.docker-image }}
|
||||
|
||||
- name: Pull docker image
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
|
||||
with:
|
||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||
|
||||
@ -222,5 +222,5 @@ jobs:
|
||||
s3-prefix: pytorch/pytorch/${{ github.event.pull_request.number }}/functorchdocs
|
||||
|
||||
- name: Teardown Linux
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||
uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
|
||||
if: always()
|
||||
|
12
.github/workflows/_ios-build-test.yml
vendored
12
.github/workflows/_ios-build-test.yml
vendored
@ -46,7 +46,7 @@ jobs:
|
||||
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
submodules: false
|
||||
@ -80,7 +80,7 @@ jobs:
|
||||
steps:
|
||||
# [see note: pytorch repo ref]
|
||||
- name: Checkout PyTorch
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
||||
|
||||
- name: Populate CI build options
|
||||
shell: bash
|
||||
@ -92,7 +92,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Install brew dependencies
|
||||
uses: nick-fields/retry@v2.8.2
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
with:
|
||||
timeout_minutes: 5
|
||||
max_attempts: 3
|
||||
@ -102,14 +102,14 @@ jobs:
|
||||
brew install libtool
|
||||
|
||||
- name: Setup miniconda for iOS
|
||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@main
|
||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
|
||||
with:
|
||||
python-version: "3.9"
|
||||
environment-file: .github/requirements/conda-env-iOS.txt
|
||||
pip-requirements-file: .github/requirements/pip-requirements-iOS.txt
|
||||
|
||||
- name: Setup Fastlane
|
||||
uses: nick-fields/retry@v2.8.2
|
||||
uses: nick-fields/retry@v3.0.0
|
||||
with:
|
||||
timeout_minutes: 5
|
||||
max_attempts: 3
|
||||
@ -292,7 +292,7 @@ jobs:
|
||||
bundler-cache: true
|
||||
|
||||
- name: Download arm64 artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4.1.7
|
||||
with:
|
||||
name: pytorch-ios-build-artifacts-arm64
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user