Eliovp commited on
Commit
ac5f8a7
·
verified ·
1 Parent(s): 7573848

Publish Qwen3-Coder v1.0.0 R9700 compiled runtime package

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ overlay/qwen3_coder_moe_w4a16_g32_gfx1201.so filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
LICENSES/AITER-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright © Advanced Micro Devices, Inc. All rights reserved.
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
LICENSES/AMD-SMI-MIT.txt ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) Advanced Micro Devices, Inc. All rights reserved.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
LICENSES/Composable-Kernel-MIT.txt ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2018- , Advanced Micro Devices, Inc. (Chao Liu, Jing Zhang)
2
+ Copyright (c) 2019- , Advanced Micro Devices, Inc. (Letao Qin, Qianfeng Zhang, Liang Huang, Shaojie Wang)
3
+ Copyright (c) 2022- , Advanced Micro Devices, Inc. (Anthony Chang, Chunyu Lai, Illia Silin, Adam Osewski, Poyen Chen, Jehandad Khan)
4
+ Copyright (c) 2019-2021, Advanced Micro Devices, Inc. (Hanwen Chang)
5
+ Copyright (c) 2019-2020, Advanced Micro Devices, Inc. (Tejash Shah)
6
+ Copyright (c) 2020 , Advanced Micro Devices, Inc. (Xiaoyan Zhou)
7
+ Copyright (c) 2021-2022, Advanced Micro Devices, Inc. (Jianfeng Yan)
8
+
9
+ SPDX-License-Identifier: MIT
10
+ Copyright (c) 2018-2025, Advanced Micro Devices, Inc. All rights reserved.
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
LICENSES/Triton-MIT.txt ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2018-2020 Philippe Tillet
3
+ * Copyright 2020-2022 OpenAI
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
LICENSES/flash-linear-attention-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2023-2025, Songlin Yang, Yu Zhang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
NOTICE.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # License and provenance
2
+
3
+ - Qwen3-Coder-30B-A3B-Instruct: Qwen, Apache-2.0. Official model/config examined
4
+ at revision `b2cff646eb4bb1d68355c01b18ae02e7cf42d120`.
5
+ - Quantized checkpoint: cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit,
6
+ revision `4bd30395b72ea6045edd04806c4fea448d4467b3`, Apache-2.0 as declared
7
+ by its publisher. The quantizer does not identify the exact upstream weight
8
+ revision. No weight conversion is performed by this package.
9
+ - Paiton runtime integration and benchmark scripts: repository Apache-2.0
10
+ license. Only compiled Paiton artifacts are included in the separate local
11
+ overlay; private compiler source is excluded.
12
+ - The compiled runtime includes AITemplate-derived components (Apache-2.0),
13
+ and links against the ROCm libraries in the base image. Existing repository
14
+ third-party notices and license texts remain applicable.
15
+ - AMD SMI runtime package and `libamd_smi.so` in the container: Advanced Micro
16
+ Devices, MIT. Its complete license is retained here in
17
+ `LICENSES/AMD-SMI-MIT.txt` and in the container's AMD SMI package.
18
+ - Base image is pinned to
19
+ `ghcr.io/eliovp/paiton-vllm-plugin@sha256:c56baf54aca1ad229829c1de26e8792806608e65ee9d06ee210b79cd49f70bc9`.
20
+ It supplies vLLM, PyTorch, Triton, Transformers and ROCm; their individual
21
+ licenses and notices continue to apply.
22
+
23
+ No model weights, access tokens or private compiler source are copied into the
24
+ container build context. The model is downloaded separately into persistent
25
+ user storage from its pinned public Hugging Face revision.
QWEN_LICENSE ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright 2024 Alibaba Cloud
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
README.md ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit
4
+ base_model_relation: quantized
5
+ library_name: paiton
6
+ pipeline_tag: text-generation
7
+ inference: false
8
+ tags:
9
+ - paiton
10
+ - amd
11
+ - rocm
12
+ - rdna4
13
+ - gfx1201
14
+ - compiled-model
15
+ - code
16
+ ---
17
+
18
+ # Qwen3-Coder 30B with Paiton on R9700
19
+
20
+ A ready-to-run coding release for one **AMD Radeon AI PRO R9700, 32 GB**.
21
+ Use terminal chat or connect a coding client to the local OpenAI-compatible API.
22
+
23
+ This Hub repo hosts the **compiled Paiton artifact, manifest, launcher and
24
+ release information**. It uses the same executable artifact as the published
25
+ v1.0.0 container. The container fetches the pinned 18.1 GB quantized checkpoint
26
+ from [cyankiwi](https://huggingface.co/cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit/tree/4bd30395b72ea6045edd04806c4fea448d4467b3)
27
+ and caches it locally. No model weights or private compiler source are hosted
28
+ here. This is a Paiton runtime package, not a Transformers checkpoint that
29
+ can be loaded by passing this repository name to `from_pretrained`.
30
+
31
+ **Version:** v1.0.0 · **GPU:** gfx1201 · **Context:** 4,096 tokens including output
32
+ · **Concurrent sequences:** 1 or 2 · **Precision:** INT4 G32 / BF16 activations
33
+
34
+ ## Download from Hugging Face and start coding
35
+
36
+ With Linux, Docker, a working AMD GPU driver and the Hugging Face CLI:
37
+
38
+ ```bash
39
+ hf download EliovpAI/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit-Paiton-RDNA4 \
40
+ --revision v1.0.0 --local-dir ./paiton-qwen3-coder
41
+ bash ./paiton-qwen3-coder/serve-docker.sh --chat
42
+ ```
43
+
44
+ Install the CLI with `python3 -m pip install huggingface_hub` if needed.
45
+ The launcher pulls the prebuilt image, starts the server and opens chat after
46
+ it is ready. No local compiler or container build is needed. The default cache
47
+ is `~/.cache/paiton`; set `PAITON_CACHE_DIR` to choose another directory.
48
+ Use `/reset` for a new conversation and `/quit` to exit chat. The API stays
49
+ running; stop it with `docker stop paiton-qwen3-coder`.
50
+
51
+ For a download without the HF CLI, use the
52
+ [ready-to-run archive](https://github.com/Eliovp-BV/paiton-vllm-plugin/releases/download/qwen3-coder-30b-awq-rdna4-v1.0.0/paiton-qwen3-coder-r9700-v1.0.0.tar.gz)
53
+ and run `./run.sh --chat` after extracting it.
54
+
55
+ ## Coding clients and API
56
+
57
+ | Client setting | Value |
58
+ | --- | --- |
59
+ | Provider | OpenAI-compatible |
60
+ | Base URL | `http://127.0.0.1:8010/v1` |
61
+ | Model | `qwen3-coder` |
62
+ | API key if the client requires a value | `local` |
63
+ | Context budget | `4096`, including output |
64
+ | Suggested maximum output | `1024` |
65
+
66
+ The endpoint is bound to localhost and needs no authentication. Ordinary chat,
67
+ streaming and automatic function tool calls are enabled. Both ordinary and
68
+ streamed tool-call arguments were checked with the published runtime. Use
69
+ focused functions, files and coding questions; whole-repository agent workloads
70
+ and long-context quality are not qualified.
71
+
72
+ ```bash
73
+ curl http://127.0.0.1:8010/v1/chat/completions \
74
+ -H 'Content-Type: application/json' \
75
+ -d '{"model":"qwen3-coder","messages":[{"role":"user","content":"Write a Python binary search with tests."}],"max_tokens":1024,"temperature":0}'
76
+ ```
77
+
78
+ Omit `--chat` to start only the API. `--offline` requires the pinned checkpoint
79
+ in the cache. `--download-only` populates the cache without loading the GPU.
80
+ Use `--stock` for the stock comparison; stop the existing server before changing
81
+ modes. See the [complete guide](https://github.com/Eliovp-BV/paiton-vllm-plugin/blob/main/models/Qwen3-Coder-30B/README.md)
82
+ for port, container-name and cache options.
83
+
84
+ ## Hardware, performance and quality
85
+
86
+ The tested machine had an R9700, 16 GB host RAM with 4 GB swap, an i5-8400 and
87
+ AMD driver 6.19.14.31400000. Reserve at least **30 GB free disk** for weights,
88
+ the roughly 5.1 GB image and caches. Model loading took about 46 seconds;
89
+ cached startup takes roughly two minutes, with extra time for fresh compilation
90
+ caches. The first weight download is separate. Sampled warm GPU usage peaked
91
+ near **20.1 GiB**, with the weights fully resident on the GPU.
92
+
93
+ | Matched concurrency | Stock output tokens/s | Paiton output tokens/s | Gain |
94
+ | --- | ---: | ---: | ---: |
95
+ | 1 | 104.42 | 126.68 | 21.3% |
96
+ | 2 | 101.61 | 172.82 | 70.1% |
97
+
98
+ These are the already-published fixed short-workload results: two measured
99
+ runs of 16 requests per engine/setting, 229–241 actual input tokens and exactly
100
+ 256 output tokens. All 128 measured requests completed with matching counts.
101
+ Mean request latency fell from 2.451 to 2.020 seconds at concurrency 1 and
102
+ from 5.038 to 2.961 seconds at concurrency 2. This comparison uses the fastest
103
+ stock configuration tested, not every possible checkpoint or runtime.
104
+
105
+ Both engines passed four executable coding checks and scored 7/8 on the small
106
+ quality suite. Both failed the JSON sorting check by returning strings instead
107
+ of numbers. Numerical and generated-text differences remain; the suite does
108
+ not establish comprehensive quality parity. No long-context, higher-concurrency,
109
+ LoRA or speculative-decoding performance is qualified. No new performance
110
+ claim is introduced by publishing these files on Hugging Face.
111
+
112
+ [Full measurements, latency definitions and limitations](https://github.com/Eliovp-BV/paiton-vllm-plugin/blob/9148505697c70ed3e0a68f298ca6860579db0fbb/models/Qwen3-Coder-30B/BENCHMARKS.md)
113
+ · [Reproduction commands](https://github.com/Eliovp-BV/paiton-vllm-plugin/blob/main/models/Qwen3-Coder-30B/REPRODUCE.md)
114
+
115
+ ## Artifact use and provenance
116
+
117
+ The normal launcher uses the identical artifact already inside the container.
118
+ For manual use of the downloaded Hub artifact, start the image with this
119
+ read-only mount and artifact path:
120
+
121
+ ```bash
122
+ docker run -d --name paiton-qwen3-coder \
123
+ --device /dev/kfd --device /dev/dri --group-add video --ipc=host \
124
+ -p 127.0.0.1:8010:8010 -v paiton-qwen3-coder-cache:/models/cache \
125
+ -v "$PWD/paiton-qwen3-coder/overlay:/models/paiton-overlay:ro" \
126
+ -e PAITON_QWEN3_CODER_ARTIFACT=/models/paiton-overlay/qwen3_coder_moe_w4a16_g32_gfx1201.so \
127
+ ghcr.io/eliovp/paiton-vllm-plugin:qwen3-coder-30b-awq-rdna4-v1.0.0
128
+ ```
129
+
130
+ Keep the adjacent `.json` manifest with the `.so`. The runtime checks the
131
+ artifact hash and GPU architecture before loading it. The immutable image is:
132
+
133
+ `ghcr.io/eliovp/paiton-vllm-plugin@sha256:fb47f4ab6073da943e553849985c81326e33b425e1017f97f3f79fad09586a8e`
134
+
135
+ The checkpoint is pinned to
136
+ `cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit` revision
137
+ `4bd30395b72ea6045edd04806c4fea448d4467b3`, with compressed-tensors symmetric
138
+ INT4 groups of 32 and BF16 activations. It derives from the official
139
+ [Qwen3-Coder-30B-A3B-Instruct](https://huggingface.co/Qwen/Qwen3-Coder-30B-A3B-Instruct).
140
+ The quantizer does not identify its exact upstream weight revision. The Hub
141
+ quantization relationship associates this runtime package with that checkpoint;
142
+ this release performs no additional weight quantization.
143
+
144
+ [SHA256SUMS](SHA256SUMS) covers the package files and
145
+ [paiton-hub.json](paiton-hub.json) records artifact and runtime provenance.
146
+ The stack uses HIP 7.14.60850, PyTorch 2.12.0+rocm7.14.0, Transformers 5.15.1,
147
+ and vLLM commit `39bd959b582c85e78e7e0326d49042ce7c3c07ed`.
148
+
149
+ ## Licenses and links
150
+
151
+ [Apache-2.0](LICENSE), [Qwen license](QWEN_LICENSE),
152
+ [component notices](THIRD_PARTY_NOTICES.md), [model provenance](NOTICE.md)
153
+ and [retained license texts](LICENSES/) accompany this package. Original
154
+ checkpoint terms continue to apply to weights fetched from the publisher.
155
+
156
+ [Public runtime](https://github.com/Eliovp-BV/paiton-vllm-plugin) ·
157
+ [Release files](https://github.com/Eliovp-BV/paiton-vllm-plugin/releases/tag/qwen3-coder-30b-awq-rdna4-v1.0.0) ·
158
+ [Paiton](https://eliovp.com/products/paiton)
SHA256SUMS ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
2
+ 0baca809927cad448401b252ce3bae12687c2987597ad7088cf3423f872d5bcd LICENSES/AITER-MIT.txt
3
+ 91452fe01aabb20286da0b0f4db72bec60f14beb85926befcee56814a5a09337 LICENSES/AMD-SMI-MIT.txt
4
+ 20f3b83dfda01bd18d285e0edbb9d044be6dde04cdf76a1ec18d9fc7127936bf LICENSES/Composable-Kernel-MIT.txt
5
+ 92640fb97222fd0a698ff28ce0c3782c172623f8d6c609b557636a80f28fb946 LICENSES/Triton-MIT.txt
6
+ 1350bfbef13ce4d3d3bdaa2f1fc4b1d1117d846732a2a62f891a67f3d5356d0d LICENSES/flash-linear-attention-MIT.txt
7
+ 63423c33f01c4e5f1cad2a64726ad4bdff0061f52005c4de1daa7e52179c58a7 NOTICE.md
8
+ 832dd9e00a68dd83b3c3fb9f5588dad7dcf337a0db50f7d9483f310cd292e92e QWEN_LICENSE
9
+ cf5a73955b760488ddfb6a4c999f2aab36788a0e1ff0bcf0f00c18ce14d58df4 README.md
10
+ bfed75b5612dd914a72612428768fb61f2058b4302e2f5dd1fc09571c5136a50 THIRD_PARTY_NOTICES.md
11
+ 82bdca13414c1957ad450d51421d455499bf1c84a986b2fc6f6e67f311a782ca container-images.json
12
+ 83284e476ce918726e0e216d8c29b9b7326061306380b7c875d6625b16872769 overlay/qwen3_coder_moe_w4a16_g32_gfx1201.json
13
+ 74fb7015e285d3b7863fc8f54341204a252a2ab305921edd5b30f5724915958f overlay/qwen3_coder_moe_w4a16_g32_gfx1201.so
14
+ 2c97d333e2de26a2ce7451f027ab2ce514ab2cfb16fdcdafe9057cb83e4d0abd paiton-hub.json
15
+ 457edff7d50424fd071f375b58052108382a037b6d75ca830556729b441a6ec4 results.json
16
+ a5c4d13b72b1cec012a5854351f892f4fcd6b272e659a49295beb1eee5bcb67c serve-docker.sh
THIRD_PARTY_NOTICES.md ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Third-party notices
2
+
3
+ The Paiton RDNA4 container includes runtime components for several models.
4
+ The notices below cover those components and the selected Qwen3-Coder
5
+ checkpoint. Their licenses remain applicable to those portions; model weights
6
+ are obtained separately from the upstream publisher.
7
+
8
+ | Component | Source | License / notice |
9
+ | --- | --- | --- |
10
+ | Qwen3-Coder AWQ checkpoint | `cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit` | Apache-2.0 as declared by publisher |
11
+ | Qwen3-Coder base model | `Qwen/Qwen3-Coder-30B-A3B-Instruct` | Apache-2.0 |
12
+ | AITemplate runtime components | `facebookincubator/AITemplate` | Apache-2.0; Meta Platforms notices |
13
+ | vLLM runtime and paged attention | `vllm-project/vllm` | Apache-2.0; vLLM contributors |
14
+ | Flash Linear Attention-derived GDN stages | `fla-org/flash-linear-attention` | MIT; Copyright 2023-2025 Songlin Yang and Yu Zhang |
15
+ | AITER-derived causal convolution | `ROCm/aiter` | MIT; Advanced Micro Devices, Inc. |
16
+ | Triton-generated host/device code | `ROCm/triton` | MIT; Philippe Tillet, OpenAI, and contributors |
17
+ | Composable Kernel build input | `ROCm/composable_kernel` | MIT; Advanced Micro Devices, Inc. |
18
+ | AMD SMI runtime package | `ROCm/amdsmi` | MIT; Advanced Micro Devices, Inc. |
19
+
20
+ Applicable retained headers include copyrights held by Advanced Micro Devices,
21
+ Inc., the vLLM team and contributors, Songlin Yang, Yu Zhang, Philippe Tillet,
22
+ OpenAI, and Meta Platforms.
23
+
24
+ The full Apache-2.0 license is in [`LICENSE`](LICENSE). Exact retained MIT
25
+ license texts are provided in [`LICENSES/`](LICENSES/).
26
+
27
+ The compiled `.so` dynamically links ROCm libraries supplied by the runtime
28
+ container, including HIP, rocBLAS, hipBLASLt, hipBLAS, rocRAND, and RCCL.
container-images.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "image": "ghcr.io/eliovp/paiton-vllm-plugin:qwen3-coder-30b-awq-rdna4-v1.0.0",
4
+ "digest": "sha256:fb47f4ab6073da943e553849985c81326e33b425e1017f97f3f79fad09586a8e",
5
+ "source_revision": "381c77954c927f33a67ca2524e440ce320ddae85",
6
+ "base_image": "ghcr.io/eliovp/paiton-vllm-plugin@sha256:c56baf54aca1ad229829c1de26e8792806608e65ee9d06ee210b79cd49f70bc9",
7
+ "platform": "linux/amd64",
8
+ "gpu_arch": "gfx1201",
9
+ "artifact_sha256": "74fb7015e285d3b7863fc8f54341204a252a2ab305921edd5b30f5724915958f"
10
+ }
overlay/qwen3_coder_moe_w4a16_g32_gfx1201.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "model": "cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit",
4
+ "revision": "4bd30395b72ea6045edd04806c4fea448d4467b3",
5
+ "gpu_arch": "gfx1201",
6
+ "artifact": "qwen3_coder_moe_w4a16_g32_gfx1201.so",
7
+ "sha256": "74fb7015e285d3b7863fc8f54341204a252a2ab305921edd5b30f5724915958f",
8
+ "abi": "PaitonQwen3CoderMoeV1",
9
+ "quantization": "INT4 symmetric G32 W4A16",
10
+ "activations": "bfloat16",
11
+ "expert_weights_layout": "uint8_E_N_Kdiv2_low_nibble_first_bias8",
12
+ "scales_layout": "bfloat16_E_N_Kdiv32",
13
+ "routing": "external_top8_normalized_float32",
14
+ "compiled_max_tokens": 128,
15
+ "serving_max_tokens": 2,
16
+ "workspace_bytes_per_token": 45056,
17
+ "qualification": "Qualified for the documented R9700 short coding workload at concurrency 1 and 2; numerical differences and quality limitations are documented in BENCHMARKS.md.",
18
+ "compiler_input_config_sha256": "518c89c98efe5fa7dcb8b748009337d2feaeb7b2dc4a2d5e4afa8aef77528b67",
19
+ "checkpoint_config_sha256": "42981b44892a1940c8f93bf5fb40972bc62f2c9a6c8f0d10115175e68b11396d"
20
+ }
overlay/qwen3_coder_moe_w4a16_g32_gfx1201.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:74fb7015e285d3b7863fc8f54341204a252a2ab305921edd5b30f5724915958f
3
+ size 336128
paiton-hub.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "package_type": "paiton-compiled-runtime-overlay",
4
+ "repo_id": "EliovpAI/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit-Paiton-RDNA4",
5
+ "release_version": "v1.0.0",
6
+ "weights_included": false,
7
+ "base_model": {
8
+ "repo_id": "cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit",
9
+ "revision": "4bd30395b72ea6045edd04806c4fea448d4467b3"
10
+ },
11
+ "runtime_image": "ghcr.io/eliovp/paiton-vllm-plugin:qwen3-coder-30b-awq-rdna4-v1.0.0",
12
+ "runtime_image_digest": "ghcr.io/eliovp/paiton-vllm-plugin@sha256:fb47f4ab6073da943e553849985c81326e33b425e1017f97f3f79fad09586a8e",
13
+ "public_source": {
14
+ "repository": "https://github.com/Eliovp-BV/paiton-vllm-plugin",
15
+ "commit": "9148505697c70ed3e0a68f298ca6860579db0fbb"
16
+ },
17
+ "artifact_origin": "published Qwen3-Coder v1.0.0 release; identical to the artifact bundled in the runtime image",
18
+ "contract": {
19
+ "gpu": "AMD Radeon AI PRO R9700",
20
+ "gpu_arch": "gfx1201",
21
+ "compute_units": 64,
22
+ "workgroup_processors": 32,
23
+ "max_concurrent_sequences": 2,
24
+ "max_model_len": 4096,
25
+ "quantization": "compressed-tensors symmetric INT4 G32",
26
+ "activations": "bfloat16"
27
+ },
28
+ "files": [
29
+ {
30
+ "path": "overlay/qwen3_coder_moe_w4a16_g32_gfx1201.json",
31
+ "size_bytes": 1050,
32
+ "sha256": "83284e476ce918726e0e216d8c29b9b7326061306380b7c875d6625b16872769"
33
+ },
34
+ {
35
+ "path": "overlay/qwen3_coder_moe_w4a16_g32_gfx1201.so",
36
+ "size_bytes": 336128,
37
+ "sha256": "74fb7015e285d3b7863fc8f54341204a252a2ab305921edd5b30f5724915958f"
38
+ }
39
+ ]
40
+ }
results.json ADDED
@@ -0,0 +1,558 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "settings": {
3
+ "stock-final-c1": {
4
+ "run_output_tokens_s": [
5
+ 104.53250339797597,
6
+ 104.30634725774433
7
+ ],
8
+ "aggregate_output_tokens_s": 104.419302873155,
9
+ "completed_requests_s": 0.40788790184826174,
10
+ "requests": 32,
11
+ "input_tokens": 7524,
12
+ "output_tokens": 8192,
13
+ "peak_sampled_vram_bytes": 21532827648,
14
+ "telemetry_samples": 158,
15
+ "e2e_s": {
16
+ "n": 32,
17
+ "mean": 2.45127607462382,
18
+ "p50": 2.450226479471894,
19
+ "p90": 2.455984840623569,
20
+ "p95": 2.4575956087763187,
21
+ "p99": 2.457689605660271,
22
+ "min": 2.4440573300234973,
23
+ "max": 2.4577168679679744
24
+ },
25
+ "ttft_s": {
26
+ "n": 32,
27
+ "mean": 0.08590561302480637,
28
+ "p50": 0.08608527900651097,
29
+ "p90": 0.0866674986667931,
30
+ "p95": 0.08668633470661007,
31
+ "p99": 0.0869625799235655,
32
+ "min": 0.08462987397797406,
33
+ "max": 0.08708392601693049
34
+ },
35
+ "tpot_s": {
36
+ "n": 32,
37
+ "mean": 0.009275962594505936,
38
+ "p50": 0.009272217666661805,
39
+ "p90": 0.009295140871750738,
40
+ "p95": 0.009297683427724348,
41
+ "p99": 0.009298357449595214,
42
+ "min": 0.009252656690374601,
43
+ "max": 0.00929861241180048
44
+ },
45
+ "output_tokens_s": {
46
+ "n": 32,
47
+ "mean": 104.43562038582411,
48
+ "p50": 104.48013787206841,
49
+ "p90": 104.58091092417986,
50
+ "p95": 104.63651680403437,
51
+ "p99": 104.71985722296866,
52
+ "min": 104.16171339201462,
53
+ "max": 104.74386048773201
54
+ },
55
+ "decode_tokens_s": {
56
+ "n": 32,
57
+ "mean": 107.80757244235349,
58
+ "p50": 107.85071689616248,
59
+ "p90": 107.97120816019948,
60
+ "p95": 108.01162285149796,
61
+ "p99": 108.06927831302553,
62
+ "min": 107.54460746433084,
63
+ "max": 108.07876539200603
64
+ },
65
+ "telemetry": {
66
+ "temp1_input": {
67
+ "n": 158,
68
+ "mean": 58405.06329113924,
69
+ "p50": 58000.0,
70
+ "p90": 60000.0,
71
+ "p95": 60000.0,
72
+ "p99": 60000.0,
73
+ "min": 39000,
74
+ "max": 60000
75
+ },
76
+ "temp2_input": {
77
+ "n": 158,
78
+ "mean": 83784.81012658228,
79
+ "p50": 84000.0,
80
+ "p90": 85000.0,
81
+ "p95": 85000.0,
82
+ "p99": 86000.0,
83
+ "min": 51000,
84
+ "max": 86000
85
+ },
86
+ "temp3_input": {
87
+ "n": 158,
88
+ "mean": 73082.27848101266,
89
+ "p50": 74000.0,
90
+ "p90": 76000.0,
91
+ "p95": 76000.0,
92
+ "p99": 76000.0,
93
+ "min": 43000,
94
+ "max": 76000
95
+ },
96
+ "freq1_input": {
97
+ "n": 158,
98
+ "mean": 3154449367.088608,
99
+ "p50": 3190000000.0,
100
+ "p90": 3195000000.0,
101
+ "p95": 3196150000.0,
102
+ "p99": 3199430000.0,
103
+ "min": 1151000000,
104
+ "max": 3201000000
105
+ },
106
+ "freq2_input": {
107
+ "n": 158,
108
+ "mean": 1257151898.734177,
109
+ "p50": 1258000000.0,
110
+ "p90": 1258000000.0,
111
+ "p95": 1258000000.0,
112
+ "p99": 1258000000.0,
113
+ "min": 1124000000,
114
+ "max": 1258000000
115
+ },
116
+ "power1_average": {
117
+ "n": 158,
118
+ "mean": 296196202.5316456,
119
+ "p50": 299000000.0,
120
+ "p90": 300000000.0,
121
+ "p95": 300000000.0,
122
+ "p99": 302000000.0,
123
+ "min": 76000000,
124
+ "max": 302000000
125
+ }
126
+ }
127
+ },
128
+ "paiton-final-c1": {
129
+ "run_output_tokens_s": [
130
+ 126.7482161946917,
131
+ 126.61164669857416
132
+ ],
133
+ "aggregate_output_tokens_s": 126.67989463885475,
134
+ "completed_requests_s": 0.49484333843302636,
135
+ "requests": 32,
136
+ "input_tokens": 7524,
137
+ "output_tokens": 8192,
138
+ "peak_sampled_vram_bytes": 21563035648,
139
+ "telemetry_samples": 130,
140
+ "e2e_s": {
141
+ "n": 32,
142
+ "mean": 2.0204912018471077,
143
+ "p50": 2.0204291350091808,
144
+ "p90": 2.0219247136905323,
145
+ "p95": 2.0233954027033176,
146
+ "p99": 2.0276054632267915,
147
+ "min": 2.0170277759898454,
148
+ "max": 2.0289841779740527
149
+ },
150
+ "ttft_s": {
151
+ "n": 32,
152
+ "mean": 0.08601805344005697,
153
+ "p50": 0.08624113749829121,
154
+ "p90": 0.08684968375018798,
155
+ "p95": 0.08692604756506625,
156
+ "p99": 0.08708030231355224,
157
+ "min": 0.08451331598917022,
158
+ "max": 0.08710829500341788
159
+ },
160
+ "tpot_s": {
161
+ "n": 32,
162
+ "mean": 0.007586169209439415,
163
+ "p50": 0.007583975192163979,
164
+ "p90": 0.0075936817341283255,
165
+ "p95": 0.007597326572320205,
166
+ "p99": 0.007611751111756152,
167
+ "min": 0.007574955266717748,
168
+ "max": 0.007617579866657216
169
+ },
170
+ "output_tokens_s": {
171
+ "n": 32,
172
+ "mean": 126.70200492982798,
173
+ "p50": 126.70575566781284,
174
+ "p90": 126.82481146128272,
175
+ "p95": 126.90434004800989,
176
+ "p99": 126.91782245956921,
177
+ "min": 126.171511231604,
178
+ "max": 126.91942225454451
179
+ },
180
+ "decode_tokens_s": {
181
+ "n": 32,
182
+ "mean": 131.82178280828202,
183
+ "p50": 131.85967507508565,
184
+ "p90": 131.94757658227738,
185
+ "p95": 131.95905111349347,
186
+ "p99": 132.000468370036,
187
+ "min": 131.2782823035353,
188
+ "max": 132.01679797240226
189
+ },
190
+ "telemetry": {
191
+ "temp1_input": {
192
+ "n": 130,
193
+ "mean": 58407.692307692305,
194
+ "p50": 58000.0,
195
+ "p90": 60000.0,
196
+ "p95": 60000.0,
197
+ "p99": 60000.0,
198
+ "min": 45000,
199
+ "max": 60000
200
+ },
201
+ "temp2_input": {
202
+ "n": 130,
203
+ "mean": 83253.84615384616,
204
+ "p50": 83000.0,
205
+ "p90": 85000.0,
206
+ "p95": 85000.0,
207
+ "p99": 85710.0,
208
+ "min": 63000,
209
+ "max": 86000
210
+ },
211
+ "temp3_input": {
212
+ "n": 130,
213
+ "mean": 73000,
214
+ "p50": 74000.0,
215
+ "p90": 75000.0,
216
+ "p95": 76000.0,
217
+ "p99": 76000.0,
218
+ "min": 50000,
219
+ "max": 76000
220
+ },
221
+ "freq1_input": {
222
+ "n": 130,
223
+ "mean": 3227776923.076923,
224
+ "p50": 3265000000.0,
225
+ "p90": 3279100000.0,
226
+ "p95": 3283000000.0,
227
+ "p99": 3288130000.0,
228
+ "min": 2211000000,
229
+ "max": 3293000000
230
+ },
231
+ "freq2_input": {
232
+ "n": 130,
233
+ "mean": 1256969230.7692308,
234
+ "p50": 1258000000.0,
235
+ "p90": 1258000000.0,
236
+ "p95": 1258000000.0,
237
+ "p99": 1258000000.0,
238
+ "min": 1124000000,
239
+ "max": 1258000000
240
+ },
241
+ "power1_average": {
242
+ "n": 130,
243
+ "mean": 294484615.38461536,
244
+ "p50": 297000000.0,
245
+ "p90": 299100000.0,
246
+ "p95": 300000000.0,
247
+ "p99": 301000000.0,
248
+ "min": 187000000,
249
+ "max": 301000000
250
+ }
251
+ }
252
+ },
253
+ "stock-final-c2": {
254
+ "run_output_tokens_s": [
255
+ 101.29990196967496,
256
+ 101.91403696866031
257
+ ],
258
+ "aggregate_output_tokens_s": 101.60604147722242,
259
+ "completed_requests_s": 0.3968985995204001,
260
+ "requests": 32,
261
+ "input_tokens": 7524,
262
+ "output_tokens": 8192,
263
+ "peak_sampled_vram_bytes": 21559439360,
264
+ "telemetry_samples": 162,
265
+ "e2e_s": {
266
+ "n": 32,
267
+ "mean": 5.037850869217436,
268
+ "p50": 5.021176078473218,
269
+ "p90": 5.141629918292165,
270
+ "p95": 5.142242345429258,
271
+ "p99": 5.142400043794186,
272
+ "min": 4.897444790985901,
273
+ "max": 5.142469321959652
274
+ },
275
+ "ttft_s": {
276
+ "n": 32,
277
+ "mean": 0.17167586559116899,
278
+ "p50": 0.16551451152190566,
279
+ "p90": 0.1681803280953318,
280
+ "p95": 0.2726705030450829,
281
+ "p99": 0.4010564773745136,
282
+ "min": 0.13795678497990593,
283
+ "max": 0.40174011199269444
284
+ },
285
+ "tpot_s": {
286
+ "n": 32,
287
+ "mean": 0.01908303922990693,
288
+ "p50": 0.019040175582346157,
289
+ "p90": 0.019494635844260786,
290
+ "p95": 0.0195414327638904,
291
+ "p99": 0.019592890214257162,
292
+ "min": 0.018565450615578277,
293
+ "max": 0.019595309949078252
294
+ },
295
+ "output_tokens_s": {
296
+ "n": 32,
297
+ "mean": 50.82458721518752,
298
+ "p50": 50.984072669266574,
299
+ "p90": 51.410113251573286,
300
+ "p95": 51.76038175886279,
301
+ "p99": 52.24342206711506,
302
+ "min": 49.781531784120695,
303
+ "max": 52.27215638473075
304
+ },
305
+ "decode_tokens_s": {
306
+ "n": 32,
307
+ "mean": 52.414180313215645,
308
+ "p50": 52.521024706967715,
309
+ "p90": 53.51770768960344,
310
+ "p95": 53.79832409114189,
311
+ "p99": 53.84681548466302,
312
+ "min": 51.03301061088222,
313
+ "max": 53.86393737357884
314
+ },
315
+ "telemetry": {
316
+ "temp1_input": {
317
+ "n": 162,
318
+ "mean": 58753.08641975309,
319
+ "p50": 59000.0,
320
+ "p90": 59000.0,
321
+ "p95": 59000.0,
322
+ "p99": 59000.0,
323
+ "min": 58000,
324
+ "max": 59000
325
+ },
326
+ "temp2_input": {
327
+ "n": 162,
328
+ "mean": 82444.44444444444,
329
+ "p50": 83000.0,
330
+ "p90": 83000.0,
331
+ "p95": 83000.0,
332
+ "p99": 83000.0,
333
+ "min": 73000,
334
+ "max": 83000
335
+ },
336
+ "temp3_input": {
337
+ "n": 162,
338
+ "mean": 73197.53086419753,
339
+ "p50": 73000.0,
340
+ "p90": 74000.0,
341
+ "p95": 74000.0,
342
+ "p99": 74000.0,
343
+ "min": 72000,
344
+ "max": 75000
345
+ },
346
+ "freq1_input": {
347
+ "n": 162,
348
+ "mean": 3240216049.382716,
349
+ "p50": 3280000000.0,
350
+ "p90": 3285000000.0,
351
+ "p95": 3285950000.0,
352
+ "p99": 3286390000.0,
353
+ "min": 1941000000,
354
+ "max": 3288000000
355
+ },
356
+ "freq2_input": {
357
+ "n": 162,
358
+ "mean": 1257172839.506173,
359
+ "p50": 1258000000.0,
360
+ "p90": 1258000000.0,
361
+ "p95": 1258000000.0,
362
+ "p99": 1258000000.0,
363
+ "min": 1124000000,
364
+ "max": 1258000000
365
+ },
366
+ "power1_average": {
367
+ "n": 162,
368
+ "mean": 292740740.7407407,
369
+ "p50": 295000000.0,
370
+ "p90": 298000000.0,
371
+ "p95": 299000000.0,
372
+ "p99": 300390000.0,
373
+ "min": 168000000,
374
+ "max": 302000000
375
+ }
376
+ }
377
+ },
378
+ "paiton-final-c2": {
379
+ "run_output_tokens_s": [
380
+ 172.9216995128759,
381
+ 172.72773043576697
382
+ ],
383
+ "aggregate_output_tokens_s": 172.82466054923114,
384
+ "completed_requests_s": 0.6750963302704341,
385
+ "requests": 32,
386
+ "input_tokens": 7524,
387
+ "output_tokens": 8192,
388
+ "peak_sampled_vram_bytes": 21563035648,
389
+ "telemetry_samples": 96,
390
+ "e2e_s": {
391
+ "n": 32,
392
+ "mean": 2.961399451123725,
393
+ "p50": 2.961522576515563,
394
+ "p90": 2.9646852039149962,
395
+ "p95": 2.964837046136381,
396
+ "p99": 2.96495436332887,
397
+ "min": 2.9523183770361356,
398
+ "max": 2.9649825469823554
399
+ },
400
+ "ttft_s": {
401
+ "n": 32,
402
+ "mean": 0.15564254137825628,
403
+ "p50": 0.15792722153128125,
404
+ "p90": 0.1674851266143378,
405
+ "p95": 0.16758953527896664,
406
+ "p99": 0.16771430715918542,
407
+ "min": 0.13778713200008497,
408
+ "max": 0.1677317310241051
409
+ },
410
+ "tpot_s": {
411
+ "n": 32,
412
+ "mean": 0.011002968273511642,
413
+ "p50": 0.010995687492073095,
414
+ "p90": 0.011052764856402634,
415
+ "p95": 0.011055382690209822,
416
+ "p99": 0.011057267765044326,
417
+ "min": 0.010952511007724075,
418
+ "max": 0.011057785427307381
419
+ },
420
+ "output_tokens_s": {
421
+ "n": 32,
422
+ "mean": 86.44569888506376,
423
+ "p50": 86.44202211812255,
424
+ "p90": 86.5361364181114,
425
+ "p95": 86.5907744343187,
426
+ "p99": 86.69320834533765,
427
+ "min": 86.34114904337191,
428
+ "max": 86.71151525906944
429
+ },
430
+ "decode_tokens_s": {
431
+ "n": 32,
432
+ "mean": 90.8871974927982,
433
+ "p50": 90.94656225027069,
434
+ "p90": 91.29696533357941,
435
+ "p95": 91.30182692577216,
436
+ "p99": 91.30392198020051,
437
+ "min": 90.43523834314854,
438
+ "max": 91.30455862155868
439
+ },
440
+ "telemetry": {
441
+ "temp1_input": {
442
+ "n": 96,
443
+ "mean": 57979.166666666664,
444
+ "p50": 58000.0,
445
+ "p90": 58000.0,
446
+ "p95": 58000.0,
447
+ "p99": 58000.0,
448
+ "min": 57000,
449
+ "max": 58000
450
+ },
451
+ "temp2_input": {
452
+ "n": 96,
453
+ "mean": 84729.16666666667,
454
+ "p50": 85000.0,
455
+ "p90": 85000.0,
456
+ "p95": 85000.0,
457
+ "p99": 85000.0,
458
+ "min": 73000,
459
+ "max": 85000
460
+ },
461
+ "temp3_input": {
462
+ "n": 96,
463
+ "mean": 75916.66666666667,
464
+ "p50": 76000.0,
465
+ "p90": 76000.0,
466
+ "p95": 76000.0,
467
+ "p99": 76000.0,
468
+ "min": 74000,
469
+ "max": 76000
470
+ },
471
+ "freq1_input": {
472
+ "n": 96,
473
+ "mean": 3050895833.3333335,
474
+ "p50": 3090000000.0,
475
+ "p90": 3093000000.0,
476
+ "p95": 3094250000.0,
477
+ "p99": 3101000000.0,
478
+ "min": 1703000000,
479
+ "max": 3101000000
480
+ },
481
+ "freq2_input": {
482
+ "n": 96,
483
+ "mean": 1256604166.6666667,
484
+ "p50": 1258000000.0,
485
+ "p90": 1258000000.0,
486
+ "p95": 1258000000.0,
487
+ "p99": 1258000000.0,
488
+ "min": 1124000000,
489
+ "max": 1258000000
490
+ },
491
+ "power1_average": {
492
+ "n": 96,
493
+ "mean": 297468750,
494
+ "p50": 299000000.0,
495
+ "p90": 300000000.0,
496
+ "p95": 301000000.0,
497
+ "p99": 301050000.0,
498
+ "min": 140000000,
499
+ "max": 302000000
500
+ }
501
+ }
502
+ }
503
+ },
504
+ "comparisons": {
505
+ "1": {
506
+ "throughput_gain_percent": 21.31846426205426,
507
+ "mean_latency_change_percent": -17.573902720966338,
508
+ "common_generated_prefix_tokens": {
509
+ "n": 32,
510
+ "mean": 129.8125,
511
+ "p50": 115.0,
512
+ "p90": 256.0,
513
+ "p95": 256.0,
514
+ "p99": 256.0,
515
+ "min": 13,
516
+ "max": 256
517
+ },
518
+ "common_prefix_logprob_abs_difference": {
519
+ "n": 4154,
520
+ "mean": 0.00962247806280263,
521
+ "p50": 1.6689248241164023e-06,
522
+ "p90": 0.027043122053146403,
523
+ "p95": 0.06337008178234087,
524
+ "p99": 0.14746004521847003,
525
+ "min": 0.0,
526
+ "max": 0.3880656957626343
527
+ },
528
+ "identical_tokens_and_logprobs_requests": 0,
529
+ "scope": "Common-prefix logprobs only; not a full-vocabulary or teacher-forced numerical equivalence test."
530
+ },
531
+ "2": {
532
+ "throughput_gain_percent": 70.092898056632,
533
+ "mean_latency_change_percent": -41.217008442654844,
534
+ "common_generated_prefix_tokens": {
535
+ "n": 32,
536
+ "mean": 89.75,
537
+ "p50": 78.0,
538
+ "p90": 236.60000000000014,
539
+ "p95": 248.85,
540
+ "p99": 256.0,
541
+ "min": 4,
542
+ "max": 256
543
+ },
544
+ "common_prefix_logprob_abs_difference": {
545
+ "n": 2872,
546
+ "mean": 0.009687470123258648,
547
+ "p50": 3.278164513176307e-06,
548
+ "p90": 0.03029351122677327,
549
+ "p95": 0.06604001820087418,
550
+ "p99": 0.1236238181591034,
551
+ "min": 0.0,
552
+ "max": 0.4361233711242676
553
+ },
554
+ "identical_tokens_and_logprobs_requests": 0,
555
+ "scope": "Common-prefix logprobs only; not a full-vocabulary or teacher-forced numerical equivalence test."
556
+ }
557
+ }
558
+ }
serve-docker.sh ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ image="${PAITON_QWEN3_CODER_IMAGE:-ghcr.io/eliovp/paiton-vllm-plugin:qwen3-coder-30b-awq-rdna4-v1.0.0}"
5
+ container="${PAITON_CONTAINER_NAME:-paiton-qwen3-coder}"
6
+ port="${PAITON_HOST_PORT:-8010}"
7
+ cache_dir="${PAITON_CACHE_DIR:-${HOME}/.cache/paiton}"
8
+ chat=0
9
+ stock=0
10
+ download=0
11
+ server_args=()
12
+ for option in "$@"; do
13
+ case "$option" in
14
+ --chat) chat=1 ;;
15
+ --stock) stock=1; server_args+=(--stock) ;;
16
+ --offline) server_args+=(--offline) ;;
17
+ --download-only) download=1; server_args+=(--download-only) ;;
18
+ -h|--help)
19
+ cat <<'HELP'
20
+ Run Qwen3-Coder 30B on one Radeon AI PRO R9700.
21
+ Usage: ./serve-docker.sh [--chat] [--stock] [--offline] [--download-only]
22
+
23
+ Default: start the API in the background; download the pinned model if needed.
24
+ --chat Wait for readiness and open terminal chat; server stays running.
25
+ --stock Run stock vLLM for the matched comparison.
26
+ --offline Require the pinned model in the persistent cache.
27
+ --download-only Populate the cache without loading the GPU model.
28
+
29
+ Environment: PAITON_CACHE_DIR (default ~/.cache/paiton), PAITON_HOST_PORT (8010),
30
+ PAITON_CONTAINER_NAME (paiton-qwen3-coder), PAITON_QWEN3_CODER_IMAGE.
31
+ HELP
32
+ exit 0 ;;
33
+ *) printf 'Unknown option: %s. Use --help.\n' "$option" >&2; exit 2 ;;
34
+ esac
35
+ done
36
+ if [[ ! "$port" =~ ^[0-9]{1,5}$ ]] || ((10#$port < 1 || 10#$port > 65535)); then
37
+ printf 'PAITON_HOST_PORT must be an integer from 1 to 65535.\n' >&2
38
+ exit 2
39
+ fi
40
+ port="$((10#$port))"
41
+ if ((chat && download)); then
42
+ printf -- '--chat and --download-only cannot be combined.\n' >&2
43
+ exit 2
44
+ fi
45
+ if ! docker info >/dev/null 2>&1; then
46
+ printf 'Docker is unavailable to this user.\n' >&2
47
+ exit 1
48
+ fi
49
+ mkdir -p "$cache_dir"
50
+ cache_dir="$(cd "$cache_dir" && pwd -P)"
51
+ if ((download)); then
52
+ exec docker run --rm --no-healthcheck -v "$cache_dir:/models/cache" "$image" "${server_args[@]}"
53
+ fi
54
+ if [[ ! -e /dev/kfd || ! -d /dev/dri ]]; then
55
+ printf 'ROCm devices /dev/kfd and /dev/dri are required.\n' >&2
56
+ exit 1
57
+ fi
58
+ mode=paiton
59
+ if ((stock)); then mode=stock; fi
60
+ if docker container inspect "$container" >/dev/null 2>&1; then
61
+ existing_image="$(docker inspect -f '{{.Config.Image}}' "$container")"
62
+ existing_mode="$(docker inspect -f '{{index .Config.Labels "dev.paiton.qwen3-coder.mode"}}' "$container")"
63
+ if [[ "$existing_image" != "$image" || "$existing_mode" != "$mode" ]]; then
64
+ printf 'Container %s uses a different image or mode. Choose PAITON_CONTAINER_NAME or remove it first.\n' "$container" >&2
65
+ exit 1
66
+ fi
67
+ existing_port="$(docker inspect -f '{{(index (index .HostConfig.PortBindings "8010/tcp") 0).HostPort}}' "$container")"
68
+ existing_cache="$(docker inspect -f '{{range .Mounts}}{{if eq .Destination "/models/cache"}}{{.Source}}{{end}}{{end}}' "$container")"
69
+ if [[ "$existing_port" != "$port" || "$existing_cache" != "$cache_dir" ]]; then
70
+ printf 'Container %s uses a different port or cache. Reuse those settings or choose another container name.\n' "$container" >&2
71
+ exit 1
72
+ fi
73
+ if [[ "$(docker inspect -f '{{.State.Running}}' "$container")" != true ]]; then
74
+ docker start "$container" >/dev/null
75
+ fi
76
+ else
77
+ docker run -d --name "$container" --device /dev/kfd --device /dev/dri \
78
+ --group-add video --ipc=host --label "dev.paiton.qwen3-coder.mode=$mode" \
79
+ -p "127.0.0.1:$port:8010" -v "$cache_dir:/models/cache" "$image" "${server_args[@]}" >/dev/null
80
+ fi
81
+ if ((!chat)); then
82
+ printf 'Qwen3-Coder is starting. API: http://127.0.0.1:%s/v1\n' "$port"
83
+ printf 'Model: qwen3-coder. Logs: docker logs -f %s\n' "$container"
84
+ printf 'Run this command again with --chat to open terminal chat.\n'
85
+ exit 0
86
+ fi
87
+ printf 'Waiting for Qwen3-Coder; the first launch downloads 18.1 GB of weights.\n'
88
+ for ((attempt=0; attempt<3600; attempt++)); do
89
+ if docker exec "$container" python3 -c \
90
+ "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/health', timeout=2)" >/dev/null 2>&1; then
91
+ chat_flags=(-i)
92
+ if [[ -t 0 && -t 1 ]]; then chat_flags=(-it); fi
93
+ exec docker exec "${chat_flags[@]}" "$container" paiton-chat \
94
+ --url http://127.0.0.1:8010/v1/chat/completions --model qwen3-coder \
95
+ --temperature 0 --max-tokens 1024
96
+ fi
97
+ if [[ "$(docker inspect -f '{{.State.Running}}' "$container")" != true ]]; then
98
+ docker logs --tail 60 "$container" >&2
99
+ printf 'Qwen3-Coder stopped before it became ready.\n' >&2
100
+ exit 1
101
+ fi
102
+ sleep 1
103
+ done
104
+ printf 'Timed out waiting for readiness. Inspect: docker logs %s\n' "$container" >&2
105
+ exit 1