Compare commits

..

2 Commits

Author SHA1 Message Date
YuxuanFan 5dcbd90d82 Add GEGLU operator sample 2026-04-26 01:56:32 -07:00
YuxuanFan cb19aa039d Add auto-updated operator checklist 2026-04-26 01:27:13 -07:00
7 changed files with 1670 additions and 1 deletions

600
README.md
View File

@ -22,6 +22,604 @@
[赛题入门](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/tree/main/GPUCodeForces%E8%B5%9B%E9%A2%98%E5%85%A5%E9%97%A8.md)、[代码解读](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/tree/main/GPUCodeForces%E4%BB%A3%E7%A0%81%E8%A7%A3%E8%AF%BB.md)。
---
<!-- OPERATOR_CHECKLIST_START -->
## ✅ 算子实现状态
该清单由 `scripts/update_operator_checklist.py` 根据 `scripts/operator_targets.txt``S1 codes/` 自动生成;新增待实现算子请写入目标清单,新增实现目录后运行 `python scripts/update_operator_checklist.py --sync-targets` 即可自动勾选。
- 已实现578
- 未实现0
- 跟踪总数578
<details>
<summary>展开查看算子实现状态</summary>
| 状态 | 算子 | 实现目录 |
| --- | --- | --- |
| [x] | aconc | [hli28146_#25](S1%20codes/hli28146_%2325) |
| [x] | ActorCriticLoss | [uucoco_#74](S1%20codes/uucoco_%2374) |
| [x] | adaptive_maxpool1d | [ZZZJ_#83](S1%20codes/ZZZJ_%2383) |
| [x] | adaptive_maxpool3d | [ZZZJ_#85](S1%20codes/ZZZJ_%2385) |
| [x] | Adaptivepiecewiselinear | [gsd123_#32](S1%20codes/gsd123_%2332) |
| [x] | AdvantageLoss | [uucoco_#75](S1%20codes/uucoco_%2375) |
| [x] | AdversarialLoss | [uucoco_#76](S1%20codes/uucoco_%2376) |
| [x] | Affine+ReLU6 融合 | [Ljy123_#13](S1%20codes/Ljy123_%2313) |
| [x] | affine_grid3d | [ZZZJ_#173](S1%20codes/ZZZJ_%23173) |
| [x] | affineleakyreluclamp | [uucoco_#77](S1%20codes/uucoco_%2377) |
| [x] | AHAF | [gsd123_#33](S1%20codes/gsd123_%2333) |
| [x] | AHerfReLU | [hli28146_#86](S1%20codes/hli28146_%2386) |
| [x] | alpha_iou | [ZZZJ_#16](S1%20codes/ZZZJ_%2316) |
| [x] | alphablend | [ZZZJ_#174](S1%20codes/ZZZJ_%23174) |
| [x] | angle | [hli28146_#35](S1%20codes/hli28146_%2335) |
| [x] | AngularDistance | [gsd123_#62](S1%20codes/gsd123_%2362) |
| [x] | AngularLoss | [uucoco_#57](S1%20codes/uucoco_%2357) |
| [x] | AOAF | [hli28146_#102](S1%20codes/hli28146_%23102) |
| [x] | APALU | [hli28146_#112](S1%20codes/hli28146_%23112) |
| [x] | AQuLU | [hli28146_#105](S1%20codes/hli28146_%23105) |
| [x] | arcfaceloss | [hli28146_#22](S1%20codes/hli28146_%2322) |
| [x] | ArcSinh-Affine-Gate | [Ljy123_#116](S1%20codes/Ljy123_%23116) |
| [x] | ArcSinTanh-Affine-Gate | [Ljy123_#109](S1%20codes/Ljy123_%23109) |
| [x] | Arctan-Affine-Gate | [Ljy123_#97](S1%20codes/Ljy123_%2397) |
| [x] | ARiA2 | [hli28146_#66](S1%20codes/hli28146_%2366) |
| [x] | Atan-Sigmoid-Mix-Gate | [LJy123_#50](S1%20codes/LJy123_%2350) |
| [x] | balanced_softmax_loss | [hli28146_#46](S1%20codes/hli28146_%2346) |
| [x] | ball_query | [ZZZJ_#175](S1%20codes/ZZZJ_%23175) |
| [x] | batchnorm1d | [Icy_Cola10](S1%20codes/Icy_Cola10) |
| [x] | bce | [wut0n_#8](S1%20codes/wut0n_%238) |
| [x] | bcewithlogitsloss | [ZZZJ 14](S1%20codes/ZZZJ%2014) |
| [x] | BehaviorCloningLoss | [uucoco_#79](S1%20codes/uucoco_%2379) |
| [x] | BellmanLoss | [uucoco_#80](S1%20codes/uucoco_%2380) |
| [x] | BetaDivergenceLoss | [uucoco_#81](S1%20codes/uucoco_%2381) |
| [x] | BhattacharyyaDistance | [uucoco_#5](S1%20codes/uucoco_%235) |
| [x] | Bias+GELUtanh 近似) | [Ljy123_#10](S1%20codes/Ljy123_%2310) |
| [x] | Bias+SiLUSwish融合 | [Ljy123_#11](S1%20codes/Ljy123_%2311) |
| [x] | bilinear | [zizi05_#6](S1%20codes/zizi05_%236) |
| [x] | BilinearGLU | [uucoco_#34](S1%20codes/uucoco_%2334) |
| [x] | Bipolar | [uucoco_#31](S1%20codes/uucoco_%2331) |
| [x] | BipolarSigmoid | [uucoco_#32](S1%20codes/uucoco_%2332) |
| [x] | black_scholes | [ZZZJ_#135](S1%20codes/ZZZJ_%23135) |
| [x] | blurpool | [ZZZJ_#134](S1%20codes/ZZZJ_%23134) |
| [x] | box_area | [ZZZJ_#18](S1%20codes/ZZZJ_%2318) |
| [x] | box_corner_to_center | [ZZZJ_#19](S1%20codes/ZZZJ_%2319) |
| [x] | box_iou | [ZZZJ_#17](S1%20codes/ZZZJ_%2317) |
| [x] | boxfilter | [ZZZJ_#21](S1%20codes/ZZZJ_%2321) |
| [x] | braycurtis | [wut0n_#22](S1%20codes/wut0n_%2322) |
| [x] | braycurtis_adaptive_triplet | [wut0n_#104](S1%20codes/wut0n_%23104) |
| [x] | bregman_divergence_gelu | [uucoco_#117](S1%20codes/uucoco_%23117) |
| [x] | BregmanDivergenceLoss | [uucoco_#82](S1%20codes/uucoco_%2382) |
| [x] | BReLU | [uucoco_#33](S1%20codes/uucoco_%2333) |
| [x] | broadcast_tensors | [ZZZJ_#180](S1%20codes/ZZZJ_%23180) |
| [x] | bucketize | [ZZZJ_#181](S1%20codes/ZZZJ_%23181) |
| [x] | BYOLLoss | [gsd123_#105](S1%20codes/gsd123_%23105) |
| [x] | canberra | [wut0n_#21](S1%20codes/wut0n_%2321) |
| [x] | canberra_focalloss | [wut0n_#88](S1%20codes/wut0n_%2388) |
| [x] | CanberraDistance | [gsd123_#26](S1%20codes/gsd123_%2326) |
| [x] | cartesian_prod | [ZZZJ_#182](S1%20codes/ZZZJ_%23182) |
| [x] | causal_mask | [ZZZJ_#183](S1%20codes/ZZZJ_%23183) |
| [x] | CELU-Affine-Gate | [Ljy123_#101](S1%20codes/Ljy123_%23101) |
| [x] | CenterNetLoss | [uucoco_#118](S1%20codes/uucoco_%23118) |
| [x] | Channel RMS Gate | [Ljy123_#35](S1%20codes/Ljy123_%2335) |
| [x] | Channel-Softmax-Affine gating | [Ljy123_#33](S1%20codes/Ljy123_%2333) |
| [x] | channel_permute | [ZZZJ_#130](S1%20codes/ZZZJ_%23130) |
| [x] | channelmeangate | [gsd123_#84](S1%20codes/gsd123_%2384) |
| [x] | ChannelShuffle | [uucoco_#8](S1%20codes/uucoco_%238) |
| [x] | CharbonnierLoss | [uucoco_#10](S1%20codes/uucoco_%2310) |
| [x] | chebyshev | [wut0n_#16](S1%20codes/wut0n_%2316) |
| [x] | chebyshev_abs_square | [uucoco_#119](S1%20codes/uucoco_%23119) |
| [x] | chebyshev_hardswish | [wut0n_#105](S1%20codes/wut0n_%23105) |
| [x] | chebyshev_leakyrelu | [wut0n_#59](S1%20codes/wut0n_%2359) |
| [x] | chebyshev_sigmoid | [wut0n_#42](S1%20codes/wut0n_%2342) |
| [x] | chebyshevaffine | [gsd123_#87](S1%20codes/gsd123_%2387) |
| [x] | ChebyshevDistance | [gsd123_#29](S1%20codes/gsd123_%2329) |
| [x] | cholesky | [hli28146_#7](S1%20codes/hli28146_%237) |
| [x] | circleloss | [gsd123 18](S1%20codes/gsd123%2018)<br>[gsd123_#9](S1%20codes/gsd123_%239) |
| [x] | circularpad1d | [ZZZJ_#184](S1%20codes/ZZZJ_%23184) |
| [x] | circularpad2d | [ZZZJ_#185](S1%20codes/ZZZJ_%23185) |
| [x] | circularpad3d | [ZZZJ_#186](S1%20codes/ZZZJ_%23186) |
| [x] | clarksDistance | [gsd123_#28](S1%20codes/gsd123_%2328) |
| [x] | cmyk_to_rgb | [ZZZJ_#50](S1%20codes/ZZZJ_%2350) |
| [x] | Colu | [gsd123_#34](S1%20codes/gsd123_%2334) |
| [x] | column_stack | [ZZZJ_#65](S1%20codes/ZZZJ_%2365) |
| [x] | ComboLoss | [uucoco_#58](S1%20codes/uucoco_%2358) |
| [x] | complex_abs_angle_polar | [uucoco_#83](S1%20codes/uucoco_%2383) |
| [x] | complex_conj_mul_div | [uucoco_#84](S1%20codes/uucoco_%2384) |
| [x] | complex_exp_log_power | [uucoco_#85](S1%20codes/uucoco_%2385) |
| [x] | complex_mul | [ZZZJ_#66](S1%20codes/ZZZJ_%2366) |
| [x] | constantpad3d | [ZZZJ_#189](S1%20codes/ZZZJ_%23189) |
| [x] | contrastiveloss | [gsd123_#22](S1%20codes/gsd123_%2322)<br>[wut0n_#11](S1%20codes/wut0n_%2311) |
| [x] | conv2d | [Icy_cola 11](S1%20codes/Icy_cola%2011) |
| [x] | Cos-Affine-Gate | [Ljy123_#43](S1%20codes/Ljy123_%2343)<br>[Ljy123_#82](S1%20codes/Ljy123_%2382) |
| [x] | cosfaceloss | [hli28146_#21](S1%20codes/hli28146_%2321) |
| [x] | cosine | [wut0n_#19](S1%20codes/wut0n_%2319) |
| [x] | Cosine-Affine-Gate | [Ljy123_#113](S1%20codes/Ljy123_%23113) |
| [x] | Cosine-Square-Affine-Gate | [Ljy123_#49](S1%20codes/Ljy123_%2349) |
| [x] | cosine_swish_gelu | [uucoco_#120](S1%20codes/uucoco_%23120) |
| [x] | cosinedistance | [wut0n_#15](S1%20codes/wut0n_%2315) |
| [x] | cosinedistance_softmax | [wut0n_#58](S1%20codes/wut0n_%2358) |
| [x] | CosineEmbeddingLoss | [gsd123 37](S1%20codes/gsd123%2037)<br>[gsd123_#15](S1%20codes/gsd123_%2315) |
| [x] | cosineloss | [ZZZJ_#1](S1%20codes/ZZZJ_%231) |
| [x] | cosinesimilarity | [wwmm_#2](S1%20codes/wwmm_%232) |
| [x] | CoVariance | [uucoco_#12](S1%20codes/uucoco_%2312) |
| [x] | crop_resize | [ZZZJ_#190](S1%20codes/ZZZJ_%23190) |
| [x] | cross | [ZZZJ_#164](S1%20codes/ZZZJ_%23164) |
| [x] | cross_layer_norm | [ZZZJ_#136](S1%20codes/ZZZJ_%23136) |
| [x] | CrossEntropyDiceLoss | [uucoco_#59](S1%20codes/uucoco_%2359) |
| [x] | CrossEntropyLoss | [gsd123_#6](S1%20codes/gsd123_%236) |
| [x] | CRReLU | [hli28146_#115](S1%20codes/hli28146_%23115) |
| [x] | cumsum | [hli28146_#11](S1%20codes/hli28146_%2311) |
| [x] | DecayingSineUnit | [uucoco_#29](S1%20codes/uucoco_%2329) |
| [x] | deepnorm | [hli28146_#32](S1%20codes/hli28146_%2332) |
| [x] | depthwise_conv1d | [ZZZJ_#74](S1%20codes/ZZZJ_%2374) |
| [x] | dequantize_fp4 | [ZZZJ_#86](S1%20codes/ZZZJ_%2386) |
| [x] | dequantize_int8 | [ZZZJ_#87](S1%20codes/ZZZJ_%2387) |
| [x] | dequantize_linear | [ZZZJ_#88](S1%20codes/ZZZJ_%2388) |
| [x] | dice | [wut0n_#6](S1%20codes/wut0n_%236) |
| [x] | dice_bce | [wut0n_#110](S1%20codes/wut0n_%23110) |
| [x] | dice_from_2d | [wut0n_#108](S1%20codes/wut0n_%23108) |
| [x] | DiceLoss | [gsd123_#17](S1%20codes/gsd123_%2317) |
| [x] | DiceSimilarity | [gsd123_#66](S1%20codes/gsd123_%2366) |
| [x] | digitization | [ZZZJ_#191](S1%20codes/ZZZJ_%23191) |
| [x] | Dilation1d | [ZZZJ_#107](S1%20codes/ZZZJ_%23107) |
| [x] | Dilation2d | [ZZZJ_#108](S1%20codes/ZZZJ_%23108) |
| [x] | DistillationLoss | [gsd123_#108](S1%20codes/gsd123_%23108) |
| [x] | dot_mse_tanh | [uucoco_#121](S1%20codes/uucoco_%23121) |
| [x] | DoubleGLU | [uucoco_#44](S1%20codes/uucoco_%2344) |
| [x] | dropblock1d | [ZZZJ_#192](S1%20codes/ZZZJ_%23192) |
| [x] | DSiLU | [hli28146_#107](S1%20codes/hli28146_%23107) |
| [x] | DSReLU | [hli28146_#131](S1%20codes/hli28146_%23131) |
| [x] | Dual-Input Contrastive Gate | [Ljy123_#34](S1%20codes/Ljy123_%2334) |
| [x] | dw_transpose | [ZZZJ_#54](S1%20codes/ZZZJ_%2354) |
| [x] | dw_transpose2d | [ZZZJ_#55](S1%20codes/ZZZJ_%2355) |
| [x] | dw_transpose3d | [ZZZJ_#56](S1%20codes/ZZZJ_%2356) |
| [x] | EIS1 | [hli28146_#128](S1%20codes/hli28146_%23128) |
| [x] | EIS2 | [hli28146_#129](S1%20codes/hli28146_%23129) |
| [x] | EIS3 | [hli28146_#130](S1%20codes/hli28146_%23130) |
| [x] | ELU-Affine-Gate | [Ljy123_#89](S1%20codes/Ljy123_%2389) |
| [x] | ELUGLU | [uucoco_#46](S1%20codes/uucoco_%2346) |
| [x] | embeddingbag | [wwmm_#3](S1%20codes/wwmm_%233) |
| [x] | EMDLoss | [gsd123_#109](S1%20codes/gsd123_%23109) |
| [x] | Erf-Affine-Gate | [Ljy123_#98](S1%20codes/Ljy123_%2398) |
| [x] | ErfAct | [hli28146_#91](S1%20codes/hli28146_%2391) |
| [x] | ErfReLU | [hli28146_#87](S1%20codes/hli28146_%2387) |
| [x] | Erosion1d | [ZZZJ_#110](S1%20codes/ZZZJ_%23110) |
| [x] | Erosion2d | [ZZZJ_#111](S1%20codes/ZZZJ_%23111) |
| [x] | Esh | [hli28146_#84](S1%20codes/hli28146_%2384) |
| [x] | euclidean | [wut0n_#14](S1%20codes/wut0n_%2314) |
| [x] | euclidean_erfc | [uucoco_#122](S1%20codes/uucoco_%23122) |
| [x] | evonorm | [gsd123 13](S1%20codes/gsd123%2013)<br>[gsd123_#5](S1%20codes/gsd123_%235) |
| [x] | Exp-Square Affine Gate | [Ljy123_#42](S1%20codes/Ljy123_%2342) |
| [x] | Expm1+Affine | [Ljy123_#29](S1%20codes/Ljy123_%2329) |
| [x] | Expm1-Sigmoid-Affine-Gate | [Ljy123_#51](S1%20codes/Ljy123_%2351) |
| [x] | expnormalizelog | [uucoco_#86](S1%20codes/uucoco_%2386) |
| [x] | ExponentialLinear-Affine-Gate | [Ljy123_#120](S1%20codes/Ljy123_%23120) |
| [x] | fake_quantize_per_channel_affine | [hli28146_#37](S1%20codes/hli28146_%2337) |
| [x] | fake_quantize_per_tensor_affine | [hli28146_#38](S1%20codes/hli28146_%2338) |
| [x] | farthest_point_sampling | [ZZZJ_#116](S1%20codes/ZZZJ_%23116) |
| [x] | FastAPLoss | [uucoco_#123](S1%20codes/uucoco_%23123) |
| [x] | FDivergenceLoss | [uucoco_#87](S1%20codes/uucoco_%2387) |
| [x] | finite_difference | [ZZZJ_#195](S1%20codes/ZZZJ_%23195) |
| [x] | fisherrao_rmsnorm | [uucoco_#124](S1%20codes/uucoco_%23124) |
| [x] | FlattenT | [gsd123_#53](S1%20codes/gsd123_%2353) |
| [x] | flip_horizontal | [ZZZJ_#146](S1%20codes/ZZZJ_%23146) |
| [x] | fma_activation | [wut0n_#36](S1%20codes/wut0n_%2336) |
| [x] | focal_eiou | [ZZZJ_#15](S1%20codes/ZZZJ_%2315) |
| [x] | FocalLoss | [gsd123_#18](S1%20codes/gsd123_%2318)<br>[wut0n_#2](S1%20codes/wut0n_%232) |
| [x] | focalloss_fused | [wut0n_#31](S1%20codes/wut0n_%2331) |
| [x] | focalloss_labelsmoothing | [wut0n_#109](S1%20codes/wut0n_%23109) |
| [x] | focalloss_reduction | [wut0n_#40](S1%20codes/wut0n_%2340) |
| [x] | focalloss_sigmoid | [wut0n_#107](S1%20codes/wut0n_%23107) |
| [x] | focaltverskyloss | [hli28146_#58](S1%20codes/hli28146_%2358)<br>[uucoco_#61](S1%20codes/uucoco_%2361) |
| [x] | fold | [ZZZJ_#196](S1%20codes/ZZZJ_%23196) |
| [x] | fourieraffine | [gsd123_#88](S1%20codes/gsd123_%2388) |
| [x] | FPFLU | [hli28146_#127](S1%20codes/hli28146_%23127) |
| [x] | FReLU | [gsd123_#45](S1%20codes/gsd123_%2345) |
| [x] | fresnel_schlick | [ZZZJ_#144](S1%20codes/ZZZJ_%23144) |
| [x] | FTS | [gsd123_#55](S1%20codes/gsd123_%2355)<br>[hli28146_#24](S1%20codes/hli28146_%2324) |
| [x] | FunnelActivationforVisualRecognition | [gsd123_#46](S1%20codes/gsd123_%2346) |
| [x] | fused_adam_step | [ZZZJ_#121](S1%20codes/ZZZJ_%23121) |
| [x] | fused_rmsprop_step | [ZZZJ_#145](S1%20codes/ZZZJ_%23145) |
| [x] | gamma_correction | [ZZZJ_#197](S1%20codes/ZZZJ_%23197) |
| [x] | GammaDivergenceLoss | [uucoco_#88](S1%20codes/uucoco_%2388) |
| [x] | gateblendnormalize | [uucoco_#89](S1%20codes/uucoco_%2389) |
| [x] | gather_elements | [ZZZJ_#198](S1%20codes/ZZZJ_%23198) |
| [x] | Gaussian+Bias | [Ljy123_#22](S1%20codes/Ljy123_%2322) |
| [x] | Gaussian-Affine-Gate | [Ljy123_#100](S1%20codes/Ljy123_%23100) |
| [x] | gaussian_blur | [ZZZJ_#113](S1%20codes/ZZZJ_%23113) |
| [x] | gaussian_filter_2d | [ZZZJ_#114](S1%20codes/ZZZJ_%23114) |
| [x] | gaussian_pdf | [ZZZJ_#120](S1%20codes/ZZZJ_%23120) |
| [x] | GaussianNLLLoss | [hli28146_#113](S1%20codes/hli28146_%23113)<br>[uucoco 31](S1%20codes/uucoco%2031)<br>[uucoco_#1](S1%20codes/uucoco_%231) |
| [x] | GDL | [hli28146_#55](S1%20codes/hli28146_%2355) |
| [x] | geglu | [geglu_sample](S1%20codes/geglu_sample) |
| [x] | GELU-Affine-Gate | [Ljy123_#94](S1%20codes/Ljy123_%2394) |
| [x] | gelu_dropout | [Ljy123_#3](S1%20codes/Ljy123_%233) |
| [x] | gempool | [hli28146_#12](S1%20codes/hli28146_%2312) |
| [x] | GeneratorLoss | [gsd123_#19](S1%20codes/gsd123_%2319) |
| [x] | giouloss | [hli28146_#13](S1%20codes/hli28146_%2313) |
| [x] | global_average_pooling | [ZZZJ_#118](S1%20codes/ZZZJ_%23118) |
| [x] | global_response_normalization | [ZZZJ_#119](S1%20codes/ZZZJ_%23119) |
| [x] | GLUGated Linear Unit融合 | [Ljy123_#12](S1%20codes/Ljy123_%2312) |
| [x] | Gompertz-Affine-Gate | [Ljy123_#123](S1%20codes/Ljy123_%23123) |
| [x] | gowerdistance | [uucoco_#50](S1%20codes/uucoco_%2350) |
| [x] | GradientClip | [gsd123_#67](S1%20codes/gsd123_%2367) |
| [x] | gridsample1d | [ZZZJ_#200](S1%20codes/ZZZJ_%23200) |
| [x] | Group-Softmax-Affine gating | [Ljy123_#37](S1%20codes/Ljy123_%2337) |
| [x] | groupnorm | [wut0n_#5](S1%20codes/wut0n_%235)<br>[ZZZJ2](S1%20codes/ZZZJ2) |
| [x] | GrowingCosineUnit | [uucoco_#35](S1%20codes/uucoco_%2335) |
| [x] | GTUtanh(a) * sigmoid(b) | [Ljy123_#19](S1%20codes/Ljy123_%2319) |
| [x] | GumbelCDF | [hli28146_#82](S1%20codes/hli28146_%2382) |
| [x] | GumbelPDF | [hli28146_#83](S1%20codes/hli28146_%2383) |
| [x] | hamming | [wut0n_#20](S1%20codes/wut0n_%2320) |
| [x] | hamming_gelu | [gsd123_#139](S1%20codes/gsd123_%23139) |
| [x] | hamming_relu | [gsd123_#140](S1%20codes/gsd123_%23140) |
| [x] | hamming_sigmoid | [gsd123_#141](S1%20codes/gsd123_%23141) |
| [x] | hamming_swish | [gsd123_#142](S1%20codes/gsd123_%23142) |
| [x] | hamming_xor_and | [uucoco_#125](S1%20codes/uucoco_%23125) |
| [x] | HammingDistance | [uucoco_#4](S1%20codes/uucoco_%234) |
| [x] | hardbootstrappingloss | [hli28146_#42](S1%20codes/hli28146_%2342) |
| [x] | HardELiSH | [uucoco_#36](S1%20codes/uucoco_%2336) |
| [x] | hardmish | [gsd123_#36](S1%20codes/gsd123_%2336)<br>[zizi05_#8](S1%20codes/zizi05_%238) |
| [x] | hardshrink | [uucoco_#28](S1%20codes/uucoco_%2328) |
| [x] | HardShrink-Affine-Gate | [Ljy123_#104](S1%20codes/Ljy123_%23104) |
| [x] | HardSigmoid | [uucoco_#27](S1%20codes/uucoco_%2327) |
| [x] | Hardsigmoid+Affine | [Ljy123_#23](S1%20codes/Ljy123_%2323) |
| [x] | HardSigmoid-Affine-Gate | [Ljy123_#78](S1%20codes/Ljy123_%2378) |
| [x] | HardSReLUE | [hli28146_#110](S1%20codes/hli28146_%23110) |
| [x] | HardSwish | [uucoco_#26](S1%20codes/uucoco_%2326) |
| [x] | Hardswish-Affine-Gate | [Ljy123_#48](S1%20codes/Ljy123_%2348)<br>[Ljy123_#95](S1%20codes/Ljy123_%2395) |
| [x] | hardswishgate | [gsd123_#89](S1%20codes/gsd123_%2389) |
| [x] | HardTanh | [uucoco_#25](S1%20codes/uucoco_%2325) |
| [x] | HardTanh-Affine-Gate | [Ljy123_#87](S1%20codes/Ljy123_%2387) |
| [x] | hardtanhgate | [gsd123_#90](S1%20codes/gsd123_%2390) |
| [x] | haversine_distance | [ZZZJ_#117](S1%20codes/ZZZJ_%23117) |
| [x] | hellinger_bhattacharyya | [gsd123_#147](S1%20codes/gsd123_%23147) |
| [x] | hellinger_gelu | [gsd123_#148](S1%20codes/gsd123_%23148) |
| [x] | HellingerDistance | [uucoco_#6](S1%20codes/uucoco_%236) |
| [x] | hexpo | [hli28146_#68](S1%20codes/hli28146_%2368) |
| [x] | hingeembeddingloss | [ZZZJ 15](S1%20codes/ZZZJ%2015) |
| [x] | hingeloss | [wut0n_#13](S1%20codes/wut0n_%2313) |
| [x] | HistogramLoss | [uucoco_#90](S1%20codes/uucoco_%2390) |
| [x] | Huber-Affine-Gate | [Ljy1234_#107](S1%20codes/Ljy1234_%23107) |
| [x] | huber_loss_tukey_biweight | [gsd123_#113](S1%20codes/gsd123_%23113) |
| [x] | huberloss | [wut0n_#12](S1%20codes/wut0n_%2312) |
| [x] | HungarianLoss | [uucoco_#126](S1%20codes/uucoco_%23126) |
| [x] | image_normalize | [ZZZJ_#68](S1%20codes/ZZZJ_%2368) |
| [x] | ImitationLearningLoss | [uucoco_#91](S1%20codes/uucoco_%2391) |
| [x] | infonceloss | [gsd123 19](S1%20codes/gsd123%2019)<br>[gsd123_#8](S1%20codes/gsd123_%238) |
| [x] | Instancenorm | [wut0n_#4](S1%20codes/wut0n_%234) |
| [x] | instancenorm_dropout | [wut0n_#34](S1%20codes/wut0n_%2334) |
| [x] | instancenorm_relu | [wut0n_#35](S1%20codes/wut0n_%2335) |
| [x] | IntraClassCorrelation | [uucoco_#11](S1%20codes/uucoco_%2311) |
| [x] | inverse_lerp | [ZZZJ_#148](S1%20codes/ZZZJ_%23148) |
| [x] | InverseReinforcementLearningLoss | [uucoco_#92](S1%20codes/uucoco_%2392) |
| [x] | InverseSquare-Affine-Gate | [Ljy123_#122](S1%20codes/Ljy123_%23122) |
| [x] | InvMultiquadratic | [gsd123_#48](S1%20codes/gsd123_%2348) |
| [x] | iou_tanh | [uucoco_#127](S1%20codes/uucoco_%23127) |
| [x] | IOULoss | [uucoco_#17](S1%20codes/uucoco_%2317) |
| [x] | IpLU | [hli28146_#95](S1%20codes/hli28146_%2395) |
| [x] | Isigmoid | [hli28146_#124](S1%20codes/hli28146_%23124) |
| [x] | ISRLU | [gsd123_#49](S1%20codes/gsd123_%2349)<br>[hli28146_#72](S1%20codes/hli28146_%2372) |
| [x] | ISRU | [gsd123_#50](S1%20codes/gsd123_%2350) |
| [x] | ItakuraSaitoDistanceLoss | [uucoco_#93](S1%20codes/uucoco_%2393) |
| [x] | jaccard_dice_sqrt | [uucoco_#128](S1%20codes/uucoco_%23128) |
| [x] | jaccard_legendre | [uucoco_#129](S1%20codes/uucoco_%23129) |
| [x] | JaccardSimilarity | [uucoco_#9](S1%20codes/uucoco_%239) |
| [x] | jaro_winkler_softmax | [uucoco_#130](S1%20codes/uucoco_%23130) |
| [x] | jensenshannon_groupnorm | [uucoco_#131](S1%20codes/uucoco_%23131) |
| [x] | jsdivergence | [hli28146_#31](S1%20codes/hli28146_%2331) |
| [x] | kldiv_jsdiv_swish | [uucoco_#132](S1%20codes/uucoco_%23132) |
| [x] | kldivloss | [gsd123_#24](S1%20codes/gsd123_%2324)<br>[ZZZJ 29](S1%20codes/ZZZJ%2029) |
| [x] | KulczynskiIndex | [gsd123_#69](S1%20codes/gsd123_%2369) |
| [x] | kullbackleibler_layernorm | [uucoco_#133](S1%20codes/uucoco_%23133) |
| [x] | l1 | [wut0n_#9](S1%20codes/wut0n_%239) |
| [x] | l1_fused | [wut0n_#45](S1%20codes/wut0n_%2345) |
| [x] | l1loss | [ZZZJ 26](S1%20codes/ZZZJ%2026) |
| [x] | l2_normalize | [ZZZJ_#126](S1%20codes/ZZZJ_%23126) |
| [x] | LaLU | [hli28146_#104](S1%20codes/hli28146_%23104) |
| [x] | laplacian | [ZZZJ_#127](S1%20codes/ZZZJ_%23127) |
| [x] | Laplacian-Affine-Gate | [Ljy123_#105](S1%20codes/Ljy123_%23105) |
| [x] | laplacian_filter | [ZZZJ_#128](S1%20codes/ZZZJ_%23128) |
| [x] | layernorm | [Ljy123_#1](S1%20codes/Ljy123_%231)<br>[wut0n_#1](S1%20codes/wut0n_%231) |
| [x] | LDAMLoss | [hli28146_#45](S1%20codes/hli28146_%2345) |
| [x] | Leaky-Swish+Bias | [Ljy123_#31](S1%20codes/Ljy123_%2331) |
| [x] | LeakyReGLU | [uucoco_#37](S1%20codes/uucoco_%2337) |
| [x] | LeakyReLU-Affine-Gate | [Ljy123_#79](S1%20codes/Ljy123_%2379) |
| [x] | LeCunTanh | [uucoco_#38](S1%20codes/uucoco_%2338) |
| [x] | legendreaffine | [gsd123_#91](S1%20codes/gsd123_%2391) |
| [x] | linear_gelu | [HHyy 43](S1%20codes/HHyy%2043) |
| [x] | lisht | [hli28146_#19](S1%20codes/hli28146_%2319) |
| [x] | localresponsenorm | [ZZZJ 8](S1%20codes/ZZZJ%208) |
| [x] | Log1p(Square)+Bias | [Ljy123_#27](S1%20codes/Ljy123_%2327) |
| [x] | Log1pAbs-Affine-Gate | [LJy123_#115](S1%20codes/LJy123_%23115) |
| [x] | logbeta | [wut0n_#29](S1%20codes/wut0n_%2329) |
| [x] | LogCosh-Affine-Gate | [Ljy123_#106](S1%20codes/Ljy123_%23106)<br>[Ljy123_#58](S1%20codes/Ljy123_%2358) |
| [x] | logcoshdiceloss | [hli28146_#56](S1%20codes/hli28146_%2356) |
| [x] | LogCoshLoss | [Lwh20070813 42](S1%20codes/Lwh20070813%2042)<br>[Lwh20070813_#2](S1%20codes/Lwh20070813_%232) |
| [x] | logdet | [ZZZJ_#167](S1%20codes/ZZZJ_%23167) |
| [x] | logitsigmoidshift | [uucoco_#95](S1%20codes/uucoco_%2395) |
| [x] | LogLU | [hli28146_#75](S1%20codes/hli28146_%2375) |
| [x] | LogMeanExp | [uucoco_#24](S1%20codes/uucoco_%2324) |
| [x] | LogSigmoid | [uucoco_#23](S1%20codes/uucoco_%2323) |
| [x] | LogSigmoid Affine Gate | [Ljy123_#41](S1%20codes/Ljy123_%2341) |
| [x] | LogSigmoid-Affine-Gate | [Ljy123_#96](S1%20codes/Ljy123_%2396) |
| [x] | LogSumExp | [gsd123_#71](S1%20codes/gsd123_%2371)<br>[hli28146_#10](S1%20codes/hli28146_%2310)<br>[wut0n_#28](S1%20codes/wut0n_%2328) |
| [x] | LogWeightedSumExp | [uucoco_#22](S1%20codes/uucoco_%2322) |
| [x] | lp_pool2d | [ZZZJ_#149](S1%20codes/ZZZJ_%23149) |
| [x] | lrn_simple | [zizi05_#5](S1%20codes/zizi05_%235) |
| [x] | Lsoftmaxloss | [hli28146_#53](S1%20codes/hli28146_%2353) |
| [x] | MahalanobisDistanceLoss | [uucoco_#96](S1%20codes/uucoco_%2396) |
| [x] | manhattan | [wut0n_#17](S1%20codes/wut0n_%2317) |
| [x] | manhattan_distance_matrix | [ZZZJ_#80](S1%20codes/ZZZJ_%2380) |
| [x] | manhattan_erf | [uucoco_#134](S1%20codes/uucoco_%23134) |
| [x] | manhattan_hardswish | [wut0n_#103](S1%20codes/wut0n_%23103) |
| [x] | manhattan_leakyrelu | [wut0n_#60](S1%20codes/wut0n_%2360) |
| [x] | manhattan_mse | [wut0n_#66](S1%20codes/wut0n_%2366) |
| [x] | manhattan_relu | [wut0n_#62](S1%20codes/wut0n_%2362) |
| [x] | manhattan_sigmoid | [wut0n_#61](S1%20codes/wut0n_%2361) |
| [x] | manhattan_sqrt | [wut0n_#67](S1%20codes/wut0n_%2367) |
| [x] | manhattan_swish | [wut0n_#64](S1%20codes/wut0n_%2364) |
| [x] | manhattan_tanh | [wut0n_#65](S1%20codes/wut0n_%2365) |
| [x] | marcsinh | [gsd123_#51](S1%20codes/gsd123_%2351) |
| [x] | marginrankingloss | [ZZZJ 16](S1%20codes/ZZZJ%2016) |
| [x] | matmul | [HHyy 25](S1%20codes/HHyy%2025) |
| [x] | maxunpool1d | [ZZZJ_#11](S1%20codes/ZZZJ_%2311) |
| [x] | maxunpool2d | [ZZZJ_#12](S1%20codes/ZZZJ_%2312) |
| [x] | meanstdnormalizeclip | [uucoco_#97](S1%20codes/uucoco_%2397) |
| [x] | median_filter_3d | [ZZZJ_#106](S1%20codes/ZZZJ_%23106) |
| [x] | MElliott | [hli28146_#134](S1%20codes/hli28146_%23134) |
| [x] | MeshEdgeLoss | [gsd123_#116](S1%20codes/gsd123_%23116) |
| [x] | MetaAconC | [hli28146_#26](S1%20codes/hli28146_%2326) |
| [x] | minkowski | [wut0n_#18](S1%20codes/wut0n_%2318) |
| [x] | minkowski_contrastiveloss | [wut0n_#68](S1%20codes/wut0n_%2368) |
| [x] | minkowski_instancenorm | [wut0n_#78](S1%20codes/wut0n_%2378) |
| [x] | minkowski_relu | [wut0n_#74](S1%20codes/wut0n_%2374) |
| [x] | MinkowskiDistance | [uucoco_#7](S1%20codes/uucoco_%237) |
| [x] | minmax_observer | [ZZZJ_#103](S1%20codes/ZZZJ_%23103) |
| [x] | minmaxscaleshift | [uucoco_#98](S1%20codes/uucoco_%2398) |
| [x] | Mish | [gsd123_#31](S1%20codes/gsd123_%2331)<br>[zizi05_#1](S1%20codes/zizi05_%231) |
| [x] | Mish+Bias | [Ljy123_#17](S1%20codes/Ljy123_%2317) |
| [x] | Mish-Affine-Gate | [Ljy123_#93](S1%20codes/Ljy123_%2393) |
| [x] | MishB | [uucoco_#62](S1%20codes/uucoco_%2362) |
| [x] | mishglu | [hli28146_#59](S1%20codes/hli28146_%2359)<br>[uucoco_#39](S1%20codes/uucoco_%2339) |
| [x] | mixup | [ZZZJ_#147](S1%20codes/ZZZJ_%23147) |
| [x] | MMReLU | [hli28146_#94](S1%20codes/hli28146_%2394) |
| [x] | ModeSeekingLoss | [uucoco_#99](S1%20codes/uucoco_%2399) |
| [x] | ModReLU | [gsd123_#52](S1%20codes/gsd123_%2352) |
| [x] | ModSwish | [hli28146_#114](S1%20codes/hli28146_%23114) |
| [x] | mseloss | [wut0n_#10](S1%20codes/wut0n_%2310)<br>[ZZZJ 28](S1%20codes/ZZZJ%2028) |
| [x] | MsewithLogitLoss | [uucoco_#100](S1%20codes/uucoco_%23100) |
| [x] | mulaw_decoding | [ZZZJ_#100](S1%20codes/ZZZJ_%23100) |
| [x] | mulaw_encoding | [ZZZJ_#101](S1%20codes/ZZZJ_%23101) |
| [x] | multilabelmarginloss | [gsd123_#73](S1%20codes/gsd123_%2373)<br>[hli28146 44](S1%20codes/hli28146%2044) |
| [x] | multimarginloss | [hli28146_#2](S1%20codes/hli28146_%232) |
| [x] | Multiquadratic | [gsd123_#54](S1%20codes/gsd123_%2354) |
| [x] | MutualInformation | [uucoco_#51](S1%20codes/uucoco_%2351) |
| [x] | NIPUNA | [hli28146_#85](S1%20codes/hli28146_%2385) |
| [x] | Nish | [hli28146_#74](S1%20codes/hli28146_%2374) |
| [x] | NISRLU | [hli28146_#73](S1%20codes/hli28146_%2373) |
| [x] | NLLLoss | [uucoco 32](S1%20codes/uucoco%2032)<br>[uucoco_#2](S1%20codes/uucoco_%232) |
| [x] | NLReLU | [hli28146_#78](S1%20codes/hli28146_%2378) |
| [x] | optional_get_element | [ZZZJ_#22](S1%20codes/ZZZJ_%2322) |
| [x] | optional_has_element | [ZZZJ_#23](S1%20codes/ZZZJ_%2323) |
| [x] | PAA | [hli28146_#132](S1%20codes/hli28146_%23132) |
| [x] | pairwise_distance | [zizi05_#3](S1%20codes/zizi05_%233) |
| [x] | pairwisedistance | [ZZZJ 38](S1%20codes/ZZZJ%2038) |
| [x] | ParametricSigmoid | [uucoco_#63](S1%20codes/uucoco_%2363) |
| [x] | PATS | [hli28146_#88](S1%20codes/hli28146_%2388) |
| [x] | PearsonCorrelation | [Lwh20070813 41](S1%20codes/Lwh20070813%2041)<br>[Lwh20070813_#1](S1%20codes/Lwh20070813_%231) |
| [x] | penalizedtanh | [hli28146_#64](S1%20codes/hli28146_%2364) |
| [x] | PerceptualLoss | [uucoco_#101](S1%20codes/uucoco_%23101) |
| [x] | permute | [ZZZJ_#143](S1%20codes/ZZZJ_%23143) |
| [x] | PGELU | [hli28146_#99](S1%20codes/hli28146_%2399) |
| [x] | piecewiseaffine | [gsd123_#94](S1%20codes/gsd123_%2394) |
| [x] | PiecewiseLinearUnit | [gsd123_#39](S1%20codes/gsd123_%2339) |
| [x] | poissonnllloss | [gsd123 20](S1%20codes/gsd123%2020) |
| [x] | polar_to_cartesian | [ZZZJ_#132](S1%20codes/ZZZJ_%23132) |
| [x] | polaraffine | [gsd123_#95](S1%20codes/gsd123_%2395) |
| [x] | poly1crossentropy | [hli28146_#15](S1%20codes/hli28146_%2315) |
| [x] | poly1focalloss | [hli28146_#16](S1%20codes/hli28146_%2316) |
| [x] | PolyLoss | [uucoco_#64](S1%20codes/uucoco_%2364) |
| [x] | polynomial_eval | [ZZZJ_#99](S1%20codes/ZZZJ_%2399) |
| [x] | polynomialaffine | [gsd123_#96](S1%20codes/gsd123_%2396) |
| [x] | Power-Sigmoid-Affine-Gate | [Ljy123_#46](S1%20codes/Ljy123_%2346) |
| [x] | Power-Sigmoid-Gate | [Ljy123_#21](S1%20codes/Ljy123_%2321) |
| [x] | PPOLoss | [uucoco_#102](S1%20codes/uucoco_%23102) |
| [x] | PReLU | [uucoco_#40](S1%20codes/uucoco_%2340) |
| [x] | projectiveaffine | [gsd123_#97](S1%20codes/gsd123_%2397) |
| [x] | Prototype-Cosine Gate | [Ljy123_#36](S1%20codes/Ljy123_%2336) |
| [x] | Pserf | [hli28146_#92](S1%20codes/hli28146_%2392) |
| [x] | PseudoHuber-Affine-Gate | [Ljy123_#99](S1%20codes/Ljy123_%2399) |
| [x] | PSGU | [hli28146_#101](S1%20codes/hli28146_%23101) |
| [x] | PSMish | [uucoco_#42](S1%20codes/uucoco_%2342) |
| [x] | PTELU | [hli28146_#122](S1%20codes/hli28146_%23122) |
| [x] | PTLU | [uucoco_#65](S1%20codes/uucoco_%2365) |
| [x] | python | [Ljy123_#67](S1%20codes/Ljy123_%2367) |
| [x] | QLearningLoss | [uucoco_#103](S1%20codes/uucoco_%23103) |
| [x] | QReLU | [gsd123_#60](S1%20codes/gsd123_%2360) |
| [x] | QuantileLoss | [hli28146_#69](S1%20codes/hli28146_%2369)<br>[uucoco_#66](S1%20codes/uucoco_%2366) |
| [x] | quantilenormalizeexpand | [uucoco_#104](S1%20codes/uucoco_%23104) |
| [x] | RadialBasisFunction | [uucoco_#43](S1%20codes/uucoco_%2343) |
| [x] | Range-Gate Affine | [Ljy123_#39](S1%20codes/Ljy123_%2339) |
| [x] | rangescalegate | [uucoco_#68](S1%20codes/uucoco_%2368) |
| [x] | rangeshiftgate | [uucoco_#69](S1%20codes/uucoco_%2369) |
| [x] | rank_normalize_scale | [gsd123_#122](S1%20codes/gsd123_%23122) |
| [x] | ranknetloss | [hli28146_#50](S1%20codes/hli28146_%2350) |
| [x] | ransac_normalize_outlier_reject | [gsd123_#123](S1%20codes/gsd123_%23123) |
| [x] | RationalClip-Affine-Gate | [Ljy123_#112](S1%20codes/Ljy123_%23112) |
| [x] | RationalFunctionApproximator | [uucoco_#52](S1%20codes/uucoco_%2352) |
| [x] | real_imag_hypot | [uucoco_#105](S1%20codes/uucoco_%23105) |
| [x] | ReflectionPad3d | [gsd123 22](S1%20codes/gsd123%2022) |
| [x] | ReLTanh | [hli28146_#125](S1%20codes/hli28146_%23125) |
| [x] | ReLU-Affine-Gate | [Ljy123_#88](S1%20codes/Ljy123_%2388) |
| [x] | ReLU6-Affine-Gate | [Ljy123_#83](S1%20codes/Ljy123_%2383) |
| [x] | ReLU^2 | [Ljy123_#14](S1%20codes/Ljy123_%2314) |
| [x] | RenyiDivergenceLoss | [uucoco_#106](S1%20codes/uucoco_%23106) |
| [x] | repeat_interleave | [ZZZJ_#102](S1%20codes/ZZZJ_%23102) |
| [x] | replicationpad1d | [wwmm_#4](S1%20codes/wwmm_%234) |
| [x] | replicationpad2d | [wwmm_#5](S1%20codes/wwmm_%235) |
| [x] | replicationpad3d | [wwmm_#6](S1%20codes/wwmm_%236) |
| [x] | RePU | [hli28146_#60](S1%20codes/hli28146_%2360) |
| [x] | resistance_distance_exp | [gsd123_#163](S1%20codes/gsd123_%23163) |
| [x] | resize_nearest | [ZZZJ_#133](S1%20codes/ZZZJ_%23133) |
| [x] | rgb_to_bayer | [ZZZJ_#36](S1%20codes/ZZZJ_%2336) |
| [x] | rgb_to_grayscale | [ZZZJ_#41](S1%20codes/ZZZJ_%2341) |
| [x] | rgb_to_xyz | [ZZZJ_#39](S1%20codes/ZZZJ_%2339) |
| [x] | rgb_to_yuv | [ZZZJ_#47](S1%20codes/ZZZJ_%2347) |
| [x] | RMAF | [hli28146_#121](S1%20codes/hli28146_%23121) |
| [x] | rmsnorm | [Icy_cola9](S1%20codes/Icy_cola9)<br>[Ljy123_#8](S1%20codes/Ljy123_%238)<br>[wut0n_#3](S1%20codes/wut0n_%233) |
| [x] | rmsnorm_residual | [wut0n_#32](S1%20codes/wut0n_%2332) |
| [x] | rmsnorm_silu | [hli28146_#61](S1%20codes/hli28146_%2361) |
| [x] | robustscalegate | [uucoco_#70](S1%20codes/uucoco_%2370) |
| [x] | robustscalehuber | [uucoco_#107](S1%20codes/uucoco_%23107) |
| [x] | rogers_tanimoto_silu | [gsd123_#164](S1%20codes/gsd123_%23164) |
| [x] | roiaware_pool1d | [ZZZJ_#152](S1%20codes/ZZZJ_%23152) |
| [x] | roll2d | [ZZZJ_#52](S1%20codes/ZZZJ_%2352) |
| [x] | roll3d | [ZZZJ_#53](S1%20codes/ZZZJ_%2353) |
| [x] | rope | [wwmm_#1](S1%20codes/wwmm_%231) |
| [x] | SAAF | [hli28146_#93](S1%20codes/hli28146_%2393) |
| [x] | SaRa | [hli28146_#106](S1%20codes/hli28146_%23106) |
| [x] | SbPiPLU | [hli28146_#116](S1%20codes/hli28146_%23116) |
| [x] | scalenorm | [hli28146_#33](S1%20codes/hli28146_%2333) |
| [x] | scatter_add | [ZZZJ#24](S1%20codes/ZZZJ%2324) |
| [x] | scatter_div | [ZZZJ_25](S1%20codes/ZZZJ_25) |
| [x] | scatter_nd | [ZZZJ_#30](S1%20codes/ZZZJ_%2330) |
| [x] | sceloss | [hli28146_#40](S1%20codes/hli28146_%2340) |
| [x] | SCLMish | [hli28146_#119](S1%20codes/hli28146_%23119) |
| [x] | SCSwish | [hli28146_#118](S1%20codes/hli28146_%23118) |
| [x] | segment_reduce | [ZZZJ_#69](S1%20codes/ZZZJ_%2369) |
| [x] | SELU+Affine | [Ljy123_#26](S1%20codes/Ljy123_%2326) |
| [x] | SELU-Affine-Gate | [Ljy123_#90](S1%20codes/Ljy123_%2390) |
| [x] | selu_clip | [zizi05_#4](S1%20codes/zizi05_%234) |
| [x] | Sep | [hli28146_#111](S1%20codes/hli28146_%23111) |
| [x] | separable_conv2d | [ZZZJ_#141](S1%20codes/ZZZJ_%23141) |
| [x] | separable_conv3d | [ZZZJ_#142](S1%20codes/ZZZJ_%23142) |
| [x] | serf | [hli28146_#65](S1%20codes/hli28146_%2365)<br>[uucoco_#45](S1%20codes/uucoco_%2345) |
| [x] | Serlu | [gsd123_#40](S1%20codes/gsd123_%2340) |
| [x] | ShiftedSincUnit | [uucoco_#47](S1%20codes/uucoco_%2347) |
| [x] | Sigmoid+Clamp+Affine | [Ljy123_#16](S1%20codes/Ljy123_%2316) |
| [x] | Sigmoid-Affine-Gate | [Ljy123_#85](S1%20codes/Ljy123_%2385) |
| [x] | sigmoid_derivative | [wut0n_#27](S1%20codes/wut0n_%2327) |
| [x] | sigmoid_focal_loss | [ZZZJ_#131](S1%20codes/ZZZJ_%23131) |
| [x] | SigmoidGLU | [uucoco_#53](S1%20codes/uucoco_%2353) |
| [x] | SigmoidSlope-Affine-Gate | [Ljy123_#110](S1%20codes/Ljy123_%23110) |
| [x] | SigmoidSquared-Affine-Gate | [Ljy123_#117](S1%20codes/Ljy123_%23117) |
| [x] | signmuladd | [uucoco_#108](S1%20codes/uucoco_%23108) |
| [x] | SimCLRLoss | [gsd123_#133](S1%20codes/gsd123_%23133) |
| [x] | Sin-Affine-Gate | [Ljy123_#44](S1%20codes/Ljy123_%2344) |
| [x] | Sinc-Affine-Gate | [Ljy123_#92](S1%20codes/Ljy123_%2392) |
| [x] | sincoshypot | [uucoco_#109](S1%20codes/uucoco_%23109) |
| [x] | Sine-Affine-Gate | [Ljy123_#114](S1%20codes/Ljy123_%23114) |
| [x] | Sinh-Affine-Gate | [Ljy123_#81](S1%20codes/Ljy123_%2381) |
| [x] | SinLU | [hli28146_#89](S1%20codes/hli28146_%2389) |
| [x] | SinuGaussian | [uucoco_#71](S1%20codes/uucoco_%2371) |
| [x] | smelu | [hli28146_#27](S1%20codes/hli28146_%2327)<br>[uucoco_#48](S1%20codes/uucoco_%2348) |
| [x] | SmoothAbs | [gsd123_#74](S1%20codes/gsd123_%2374) |
| [x] | SmoothL1Loss | [gsd123 40](S1%20codes/gsd123%2040)<br>[gsd123_#13](S1%20codes/gsd123_%2313) |
| [x] | SmoothMaximum | [gsd123_#75](S1%20codes/gsd123_%2375) |
| [x] | SmoothMinimum | [gsd123_#76](S1%20codes/gsd123_%2376) |
| [x] | SmoothRamp | [gsd123_#77](S1%20codes/gsd123_%2377) |
| [x] | SmoothStep | [gsd123_#78](S1%20codes/gsd123_%2378)<br>[ZZZJ_#123](S1%20codes/ZZZJ_%23123) |
| [x] | SoftClip | [uucoco_#21](S1%20codes/uucoco_%2321) |
| [x] | SoftClip+Affine | [Ljy123_#30](S1%20codes/Ljy123_%2330) |
| [x] | SoftExponential | [uucoco_#20](S1%20codes/uucoco_%2320) |
| [x] | softmarginloss | [hli28146 35](S1%20codes/hli28146%2035)<br>[hli28146_#3](S1%20codes/hli28146_%233) |
| [x] | softmax | [Ljy123_#6](S1%20codes/Ljy123_%236) |
| [x] | softmin | [uucoco_#14](S1%20codes/uucoco_%2314) |
| [x] | softplus | [uucoco_#15](S1%20codes/uucoco_%2315) |
| [x] | Softplus+Bias | [Ljy123_#15](S1%20codes/Ljy123_%2315) |
| [x] | Softplus^2-Affine-Gate | [Ljy123_#80](S1%20codes/Ljy123_%2380) |
| [x] | Softplus^3-Affine-Gate | [Ljy123_#102](S1%20codes/Ljy123_%23102) |
| [x] | SoftplusGLU | [uucoco_#54](S1%20codes/uucoco_%2354) |
| [x] | SoftplusSqrt-Affine-Gate | [Ljy123_#108](S1%20codes/Ljy123_%23108) |
| [x] | softshrink | [uucoco_#16](S1%20codes/uucoco_%2316) |
| [x] | SoftShrink-Affine-Gate | [Ljy123_#103](S1%20codes/Ljy123_%23103) |
| [x] | softsign | [uucoco_#18](S1%20codes/uucoco_%2318) |
| [x] | Softsign+Affine | [Ljy123_#18](S1%20codes/Ljy123_%2318) |
| [x] | SoftSign-Affine-Gate | [Ljy123_#91](S1%20codes/Ljy123_%2391) |
| [x] | Softsign-Sigmoid-Mix-Gate | [Ljy123_#52](S1%20codes/Ljy123_%2352) |
| [x] | SoftSignSquared-Affine-Gate | [Ljy123_#119](S1%20codes/Ljy123_%23119) |
| [x] | solarize | [ZZZJ_#140](S1%20codes/ZZZJ_%23140) |
| [x] | Spatial-Diff Sigmoid Gate | [Ljy123_#38](S1%20codes/Ljy123_%2338) |
| [x] | spherefaceloss | [hli28146_#23](S1%20codes/hli28146_%2323) |
| [x] | Spherical+Affine | [Ljy123_#24](S1%20codes/Ljy123_%2324) |
| [x] | SQRBF | [gsd123_#59](S1%20codes/gsd123_%2359) |
| [x] | Sqrt(ReLU)+Affine | [Ljy123_#28](S1%20codes/Ljy123_%2328) |
| [x] | sqrtreciprocalrsqrt | [uucoco_#110](S1%20codes/uucoco_%23110) |
| [x] | Square-Sigmoid-Affine-Gate | [LJy123_#47](S1%20codes/LJy123_%2347) |
| [x] | squared_euclidean | [wut0n_#23](S1%20codes/wut0n_%2323) |
| [x] | SquaredHingeLoss | [uucoco_#72](S1%20codes/uucoco_%2372) |
| [x] | squareplus | [ZZZJ_#124](S1%20codes/ZZZJ_%23124) |
| [x] | SReLU | [uucoco_#49](S1%20codes/uucoco_%2349) |
| [x] | SRS | [uucoco_#73](S1%20codes/uucoco_%2373) |
| [x] | std_mean | [ZZZJ_#122](S1%20codes/ZZZJ_%23122) |
| [x] | STL | [hli28146_#79](S1%20codes/hli28146_%2379) |
| [x] | structural_similarity_softplus | [uucoco_#135](S1%20codes/uucoco_%23135) |
| [x] | SupConLoss | [gsd123_#132](S1%20codes/gsd123_%23132) |
| [x] | SwAT | [hli28146_#109](S1%20codes/hli28146_%23109) |
| [x] | swiglu | [zizi05_#7](S1%20codes/zizi05_%237)<br>[ZZZJ1](S1%20codes/ZZZJ1) |
| [x] | swish | [Ljy123_#7](S1%20codes/Ljy123_%237) |
| [x] | Swish(SiLU)-Affine-Gate | [Ljy123_#86](S1%20codes/Ljy123_%2386) |
| [x] | Swish^2+Bias | [Ljy123_#25](S1%20codes/Ljy123_%2325) |
| [x] | swish_layernorm | [zizi05_10](S1%20codes/zizi05_10) |
| [x] | switchablenorm | [ZZZJ 12](S1%20codes/ZZZJ%2012) |
| [x] | SørensenDice | [gsd123_#27](S1%20codes/gsd123_%2327) |
| [x] | Tanh-Affine-Gate | [Ljy123_#45](S1%20codes/Ljy123_%2345)<br>[Ljy123_#84](S1%20codes/Ljy123_%2384) |
| [x] | tanhexp | [hli28146_#20](S1%20codes/hli28146_%2320) |
| [x] | TanhGLU | [uucoco_#55](S1%20codes/uucoco_%2355) |
| [x] | TanhLU | [hli28146_#90](S1%20codes/hli28146_%2390) |
| [x] | tanhshrink | [zizi05_#9](S1%20codes/zizi05_%239) |
| [x] | Tanhshrink+Affine | [Ljy123_#20](S1%20codes/Ljy123_%2320) |
| [x] | TanhSlope-Affine-Gate | [Ljy123_#111](S1%20codes/Ljy123_%23111) |
| [x] | TanhSoft1 | [hli28146_#96](S1%20codes/hli28146_%2396) |
| [x] | TanhSoft2 | [hli28146_#97](S1%20codes/hli28146_%2397) |
| [x] | TanimotoCoefficient | [uucoco 33](S1%20codes/uucoco%2033)<br>[uucoco_#3](S1%20codes/uucoco_%233) |
| [x] | TDLoss | [uucoco_#111](S1%20codes/uucoco_%23111) |
| [x] | TeLU | [hli28146_#80](S1%20codes/hli28146_%2380) |
| [x] | Temperature Softmax Channel Affine | [Ljy123_#40](S1%20codes/Ljy123_%2340) |
| [x] | tensor_roll | [ZZZJ_#138](S1%20codes/ZZZJ_%23138) |
| [x] | three_interpolate | [ZZZJ_#156](S1%20codes/ZZZJ_%23156) |
| [x] | thresholdscalenegate | [uucoco_#112](S1%20codes/uucoco_%23112) |
| [x] | topk_filtering | [ZZZJ_#139](S1%20codes/ZZZJ_%23139) |
| [x] | total_correlation_elu | [uucoco_#136](S1%20codes/uucoco_%23136) |
| [x] | transpose_scale | [ZZZJ_#125](S1%20codes/ZZZJ_%23125) |
| [x] | tripletloss | [wut0n_#7](S1%20codes/wut0n_%237) |
| [x] | tripletmarginloss | [hli28146_#1](S1%20codes/hli28146_%231)<br>[ZZZJ 30](S1%20codes/ZZZJ%2030) |
| [x] | TripletMarginWithDistanceLoss | [gsd123 39](S1%20codes/gsd123%2039)<br>[gsd123_#14](S1%20codes/gsd123_%2314) |
| [x] | TrustRegionPolicyOptimizationLoss | [uucoco_#113](S1%20codes/uucoco_%23113) |
| [x] | TsallisDivergenceLoss | [uucoco_#114](S1%20codes/uucoco_%23114) |
| [x] | tversky_loss | [ZZZJ_#72](S1%20codes/ZZZJ_%2372) |
| [x] | TverskyIndex | [gsd123_#80](S1%20codes/gsd123_%2380) |
| [x] | tverskyloss | [hli28146_#57](S1%20codes/hli28146_%2357) |
| [x] | TweedieLoss | [gsd123_#100](S1%20codes/gsd123_%23100) |
| [x] | upsample | [ZZZJ 21](S1%20codes/ZZZJ%2021) |
| [x] | ValueLoss | [uucoco_#115](S1%20codes/uucoco_%23115) |
| [x] | Variance | [uucoco_#13](S1%20codes/uucoco_%2313)<br>[wut0n_#26](S1%20codes/wut0n_%2326) |
| [x] | VariationOfInformation | [uucoco_#56](S1%20codes/uucoco_%2356) |
| [x] | vecdot | [hli28146_#8](S1%20codes/hli28146_%238) |
| [x] | VIDLoss | [gsd123_#107](S1%20codes/gsd123_%23107) |
| [x] | voxel_hash | [ZZZJ_#158](S1%20codes/ZZZJ_%23158) |
| [x] | voxel_mean | [ZZZJ_#159](S1%20codes/ZZZJ_%23159) |
| [x] | voxel_to_point | [ZZZJ_#160](S1%20codes/ZZZJ_%23160) |
| [x] | wasserstein_energy_gelu | [uucoco_#137](S1%20codes/uucoco_%23137) |
| [x] | wasserstein_layernorm | [gsd123_#166](S1%20codes/gsd123_%23166) |
| [x] | waveletaffine | [gsd123_#101](S1%20codes/gsd123_%23101) |
| [x] | WeightDecay | [gsd123_#81](S1%20codes/gsd123_%2381) |
| [x] | wingloss | [hli28146_#14](S1%20codes/hli28146_%2314) |
| [x] | winsorize_scale_normalize | [gsd123_#93](S1%20codes/gsd123_%2393) |
| [x] | wiou | [ZZZJ_#33](S1%20codes/ZZZJ_%2333) |
| [x] | xIELU | [hli28146_#77](S1%20codes/hli28146_%2377) |
| [x] | xSiLU | [hli28146_#76](S1%20codes/hli28146_%2376) |
| [x] | xyz_to_rgb | [ZZZJ_#38](S1%20codes/ZZZJ_%2338) |
| [x] | yuv_to_rgb | [ZZZJ_#49](S1%20codes/ZZZJ_%2349) |
| [x] | zeropad2d | [ZZZJ_#9](S1%20codes/ZZZJ_%239) |
| [x] | zeropad3d | [ZZZJ_#10](S1%20codes/ZZZJ_%2310) |
| [x] | zscoresigmoiddenormalize | [uucoco_#116](S1%20codes/uucoco_%23116) |
| [x] | 仿射+ReLU | [Ljy123_#9](S1%20codes/Ljy123_%239) |
</details>
<!-- OPERATOR_CHECKLIST_END -->
---
## 📥 参赛流程
@ -209,4 +807,4 @@
## FAQ
[第一季FAQ参考](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/tree/main/FAQ.md)
[第一季FAQ参考](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/tree/main/FAQ.md)

View File

@ -0,0 +1,89 @@
import torch
import torch.nn as nn
from torch.utils.cpp_extension import load_inline
class ModelNew(nn.Module):
def __init__(self):
super().__init__()
self.op = load_inline(
name="geglu_fused_tanh_v1",
cpp_sources="""
#include <torch/extension.h>
torch::Tensor geglu_cuda(torch::Tensor input);
""",
cuda_sources="""
#include <torch/extension.h>
#include <cuda_runtime.h>
__device__ __forceinline__ float gelu_tanh(float x) {
const float kAlpha = 0.7978845608028654f;
const float kBeta = 0.044715f;
float x3 = x * x * x;
float inner = kAlpha * (x + kBeta * x3);
return 0.5f * x * (1.0f + tanhf(inner));
}
__global__ void geglu_kernel(
const float* __restrict__ input,
float* __restrict__ output,
long long output_numel,
int hidden,
int input_last_dim
) {
long long idx = blockIdx.x * blockDim.x + threadIdx.x;
long long stride = (long long)blockDim.x * gridDim.x;
for (long long i = idx; i < output_numel; i += stride) {
int col = i % hidden;
long long row = i / hidden;
long long base = row * input_last_dim + col;
float value = input[base];
float gate = input[base + hidden];
output[i] = value * gelu_tanh(gate);
}
}
torch::Tensor geglu_cuda(torch::Tensor input) {
TORCH_CHECK(input.is_cuda(), "input must be a CUDA tensor");
TORCH_CHECK(input.scalar_type() == torch::kFloat32, "input must be float32");
TORCH_CHECK(input.dim() >= 1, "input must have at least one dimension");
auto x = input.contiguous();
int input_last_dim = x.size(-1);
TORCH_CHECK(input_last_dim % 2 == 0, "last dimension must be even for GEGLU");
int hidden = input_last_dim / 2;
auto out_sizes = x.sizes().vec();
out_sizes.back() = hidden;
auto output = torch::empty(out_sizes, x.options());
long long output_numel = output.numel();
if (output_numel == 0) {
return output;
}
int threads = 256;
int blocks = (int)((output_numel + threads - 1) / threads);
if (blocks > 65535) {
blocks = 65535;
}
geglu_kernel<<<blocks, threads>>>(
x.data_ptr<float>(),
output.data_ptr<float>(),
output_numel,
hidden,
input_last_dim
);
return output;
}
""",
functions=["geglu_cuda"],
extra_cuda_cflags=["-O3", "--use_fast_math"],
verbose=False,
)
def forward(self, x: torch.Tensor) -> torch.Tensor:
return self.op.geglu_cuda(x)

View File

@ -0,0 +1,25 @@
import torch
import torch.nn as nn
import torch.nn.functional as F
class Model(nn.Module):
def __init__(self):
super().__init__()
def forward(self, x: torch.Tensor) -> torch.Tensor:
value, gate = x.chunk(2, dim=-1)
return value * F.gelu(gate, approximate="tanh")
batch_size = 2048
feature_dim = 4096
def get_inputs():
x = torch.randn(batch_size, feature_dim, dtype=torch.float32) * 3.0
return [x]
def get_init_inputs():
return []

View File

@ -0,0 +1,15 @@
Operator: GEGLU
Implement a fused CUDA kernel for the GEGLU activation used in Transformer MLP blocks.
Reference PyTorch behavior:
```python
value, gate = x.chunk(2, dim=-1)
y = value * torch.nn.functional.gelu(gate, approximate="tanh")
```
The input is a contiguous or non-contiguous float32 CUDA tensor whose last
dimension is even. The output keeps the same leading dimensions and halves the
last dimension. The CUDA implementation should fuse the chunk, tanh-approx GELU,
and elementwise multiply into a single pass over output elements.

View File

@ -0,0 +1,67 @@
import time
import torch
from geglu_cuda import ModelNew
from geglu_torch import Model, get_init_inputs, get_inputs
def _to_cuda(values):
return [x.cuda() if isinstance(x, torch.Tensor) else x for x in values]
def run_benchmark():
if not torch.cuda.is_available():
print("CUDA is not available.")
return False, 0.0
init_inputs = _to_cuda(get_init_inputs())
inputs = _to_cuda(get_inputs())
torch_model = Model(*init_inputs).cuda().eval()
cuda_model = ModelNew(*init_inputs).cuda().eval()
with torch.no_grad():
output_torch = torch_model(*inputs)
output_cuda = cuda_model(*inputs)
max_diff = (output_torch - output_cuda).abs().max().item()
mean_diff = (output_torch - output_cuda).abs().mean().item()
precision_flag = torch.allclose(output_torch, output_cuda, rtol=1e-4, atol=1e-4)
print("-------------------- precision check --------------------")
print(f"max diff: {max_diff:.8f}")
print(f"mean diff: {mean_diff:.8f}")
print(f"allclose: {precision_flag}")
for _ in range(20):
torch_model(*inputs)
cuda_model(*inputs)
num_iterations = 200
torch.cuda.synchronize()
start = time.time()
for _ in range(num_iterations):
torch_model(*inputs)
torch.cuda.synchronize()
torch_time = (time.time() - start) / num_iterations
torch.cuda.synchronize()
start = time.time()
for _ in range(num_iterations):
cuda_model(*inputs)
torch.cuda.synchronize()
cuda_time = (time.time() - start) / num_iterations
speedup = torch_time / cuda_time if cuda_time > 0 else 0.0
print("-------------------- performance check --------------------")
print(f"PyTorch GEGLU average time: {torch_time:.6f} s")
print(f"Custom CUDA GEGLU average time: {cuda_time:.6f} s")
print(f"Speedup: {speedup:.2f}x")
return precision_flag, speedup
if __name__ == "__main__":
run_benchmark()

View File

@ -0,0 +1,582 @@
# Operator targets tracked in README.md
# Add unimplemented operators here, one per line.
# scripts/update_operator_checklist.py checks them when matching implementations appear under S1 codes/.
aconc
ActorCriticLoss
adaptive_maxpool1d
adaptive_maxpool3d
Adaptivepiecewiselinear
AdvantageLoss
AdversarialLoss
Affine+ReLU6 融合
affine_grid3d
affineleakyreluclamp
AHAF
AHerfReLU
alpha_iou
alphablend
angle
AngularDistance
AngularLoss
AOAF
APALU
AQuLU
arcfaceloss
ArcSinh-Affine-Gate
ArcSinTanh-Affine-Gate
Arctan-Affine-Gate
ARiA2
Atan-Sigmoid-Mix-Gate
balanced_softmax_loss
ball_query
batchnorm1d
bce
bcewithlogitsloss
BehaviorCloningLoss
BellmanLoss
BetaDivergenceLoss
BhattacharyyaDistance
Bias+GELUtanh 近似)
Bias+SiLUSwish融合
bilinear
BilinearGLU
Bipolar
BipolarSigmoid
black_scholes
blurpool
box_area
box_corner_to_center
box_iou
boxfilter
braycurtis
braycurtis_adaptive_triplet
bregman_divergence_gelu
BregmanDivergenceLoss
BReLU
broadcast_tensors
bucketize
BYOLLoss
canberra
canberra_focalloss
CanberraDistance
cartesian_prod
causal_mask
CELU-Affine-Gate
CenterNetLoss
Channel RMS Gate
Channel-Softmax-Affine gating
channel_permute
channelmeangate
ChannelShuffle
CharbonnierLoss
chebyshev
chebyshev_abs_square
chebyshev_hardswish
chebyshev_leakyrelu
chebyshev_sigmoid
chebyshevaffine
ChebyshevDistance
cholesky
circleloss
circularpad1d
circularpad2d
circularpad3d
clarksDistance
cmyk_to_rgb
Colu
column_stack
ComboLoss
complex_abs_angle_polar
complex_conj_mul_div
complex_exp_log_power
complex_mul
constantpad3d
contrastiveloss
conv2d
Cos-Affine-Gate
cosfaceloss
cosine
Cosine-Affine-Gate
Cosine-Square-Affine-Gate
cosine_swish_gelu
cosinedistance
cosinedistance_softmax
CosineEmbeddingLoss
cosineloss
cosinesimilarity
CoVariance
crop_resize
cross
cross_layer_norm
CrossEntropyDiceLoss
CrossEntropyLoss
CRReLU
cumsum
DecayingSineUnit
deepnorm
depthwise_conv1d
dequantize_fp4
dequantize_int8
dequantize_linear
dice
dice_bce
dice_from_2d
DiceLoss
DiceSimilarity
digitization
Dilation1d
Dilation2d
DistillationLoss
dot_mse_tanh
DoubleGLU
dropblock1d
DSiLU
DSReLU
Dual-Input Contrastive Gate
dw_transpose
dw_transpose2d
dw_transpose3d
EIS1
EIS2
EIS3
ELU-Affine-Gate
ELUGLU
embeddingbag
EMDLoss
Erf-Affine-Gate
ErfAct
ErfReLU
Erosion1d
Erosion2d
Esh
euclidean
euclidean_erfc
evonorm
Exp-Square Affine Gate
Expm1+Affine
Expm1-Sigmoid-Affine-Gate
expnormalizelog
ExponentialLinear-Affine-Gate
fake_quantize_per_channel_affine
fake_quantize_per_tensor_affine
farthest_point_sampling
FastAPLoss
FDivergenceLoss
finite_difference
fisherrao_rmsnorm
FlattenT
flip_horizontal
fma_activation
focal_eiou
FocalLoss
focalloss_fused
focalloss_labelsmoothing
focalloss_reduction
focalloss_sigmoid
focaltverskyloss
fold
fourieraffine
FPFLU
FReLU
fresnel_schlick
FTS
FunnelActivationforVisualRecognition
fused_adam_step
fused_rmsprop_step
gamma_correction
GammaDivergenceLoss
gateblendnormalize
gather_elements
Gaussian+Bias
Gaussian-Affine-Gate
gaussian_blur
gaussian_filter_2d
gaussian_pdf
GaussianNLLLoss
GDL
geglu
GELU-Affine-Gate
gelu_dropout
gempool
GeneratorLoss
giouloss
global_average_pooling
global_response_normalization
GLUGated Linear Unit融合
Gompertz-Affine-Gate
gowerdistance
GradientClip
gridsample1d
Group-Softmax-Affine gating
groupnorm
GrowingCosineUnit
GTUtanh(a) * sigmoid(b)
GumbelCDF
GumbelPDF
hamming
hamming_gelu
hamming_relu
hamming_sigmoid
hamming_swish
hamming_xor_and
HammingDistance
hardbootstrappingloss
HardELiSH
hardmish
hardshrink
HardShrink-Affine-Gate
HardSigmoid
Hardsigmoid+Affine
HardSigmoid-Affine-Gate
HardSReLUE
HardSwish
Hardswish-Affine-Gate
hardswishgate
HardTanh
HardTanh-Affine-Gate
hardtanhgate
haversine_distance
hellinger_bhattacharyya
hellinger_gelu
HellingerDistance
hexpo
hingeembeddingloss
hingeloss
HistogramLoss
Huber-Affine-Gate
huber_loss_tukey_biweight
huberloss
HungarianLoss
image_normalize
ImitationLearningLoss
infonceloss
Instancenorm
instancenorm_dropout
instancenorm_relu
IntraClassCorrelation
inverse_lerp
InverseReinforcementLearningLoss
InverseSquare-Affine-Gate
InvMultiquadratic
iou_tanh
IOULoss
IpLU
Isigmoid
ISRLU
ISRU
ItakuraSaitoDistanceLoss
jaccard_dice_sqrt
jaccard_legendre
JaccardSimilarity
jaro_winkler_softmax
jensenshannon_groupnorm
jsdivergence
kldiv_jsdiv_swish
kldivloss
KulczynskiIndex
kullbackleibler_layernorm
l1
l1_fused
l1loss
l2_normalize
LaLU
laplacian
Laplacian-Affine-Gate
laplacian_filter
layernorm
LDAMLoss
Leaky-Swish+Bias
LeakyReGLU
LeakyReLU-Affine-Gate
LeCunTanh
legendreaffine
linear_gelu
lisht
localresponsenorm
Log1p(Square)+Bias
Log1pAbs-Affine-Gate
logbeta
LogCosh-Affine-Gate
logcoshdiceloss
LogCoshLoss
logdet
logitsigmoidshift
LogLU
LogMeanExp
LogSigmoid
LogSigmoid Affine Gate
LogSigmoid-Affine-Gate
LogSumExp
LogWeightedSumExp
lp_pool2d
lrn_simple
Lsoftmaxloss
MahalanobisDistanceLoss
manhattan
manhattan_distance_matrix
manhattan_erf
manhattan_hardswish
manhattan_leakyrelu
manhattan_mse
manhattan_relu
manhattan_sigmoid
manhattan_sqrt
manhattan_swish
manhattan_tanh
marcsinh
marginrankingloss
matmul
maxunpool1d
maxunpool2d
meanstdnormalizeclip
median_filter_3d
MElliott
MeshEdgeLoss
MetaAconC
minkowski
minkowski_contrastiveloss
minkowski_instancenorm
minkowski_relu
MinkowskiDistance
minmax_observer
minmaxscaleshift
Mish
Mish+Bias
Mish-Affine-Gate
MishB
mishglu
mixup
MMReLU
ModeSeekingLoss
ModReLU
ModSwish
mseloss
MsewithLogitLoss
mulaw_decoding
mulaw_encoding
multilabelmarginloss
multimarginloss
Multiquadratic
MutualInformation
NIPUNA
Nish
NISRLU
NLLLoss
NLReLU
optional_get_element
optional_has_element
PAA
pairwise_distance
pairwisedistance
ParametricSigmoid
PATS
PearsonCorrelation
penalizedtanh
PerceptualLoss
permute
PGELU
piecewiseaffine
PiecewiseLinearUnit
poissonnllloss
polar_to_cartesian
polaraffine
poly1crossentropy
poly1focalloss
PolyLoss
polynomial_eval
polynomialaffine
Power-Sigmoid-Affine-Gate
Power-Sigmoid-Gate
PPOLoss
PReLU
projectiveaffine
Prototype-Cosine Gate
Pserf
PseudoHuber-Affine-Gate
PSGU
PSMish
PTELU
PTLU
python
QLearningLoss
QReLU
QuantileLoss
quantilenormalizeexpand
RadialBasisFunction
Range-Gate Affine
rangescalegate
rangeshiftgate
rank_normalize_scale
ranknetloss
ransac_normalize_outlier_reject
RationalClip-Affine-Gate
RationalFunctionApproximator
real_imag_hypot
ReflectionPad3d
ReLTanh
ReLU-Affine-Gate
ReLU6-Affine-Gate
ReLU^2
RenyiDivergenceLoss
repeat_interleave
replicationpad1d
replicationpad2d
replicationpad3d
RePU
resistance_distance_exp
resize_nearest
rgb_to_bayer
rgb_to_grayscale
rgb_to_xyz
rgb_to_yuv
RMAF
rmsnorm
rmsnorm_residual
rmsnorm_silu
robustscalegate
robustscalehuber
rogers_tanimoto_silu
roiaware_pool1d
roll2d
roll3d
rope
SAAF
SaRa
SbPiPLU
scalenorm
scatter_add
scatter_div
scatter_nd
sceloss
SCLMish
SCSwish
segment_reduce
SELU+Affine
SELU-Affine-Gate
selu_clip
Sep
separable_conv2d
separable_conv3d
serf
Serlu
ShiftedSincUnit
Sigmoid+Clamp+Affine
Sigmoid-Affine-Gate
sigmoid_derivative
sigmoid_focal_loss
SigmoidGLU
SigmoidSlope-Affine-Gate
SigmoidSquared-Affine-Gate
signmuladd
SimCLRLoss
Sin-Affine-Gate
Sinc-Affine-Gate
sincoshypot
Sine-Affine-Gate
Sinh-Affine-Gate
SinLU
SinuGaussian
smelu
SmoothAbs
SmoothL1Loss
SmoothMaximum
SmoothMinimum
SmoothRamp
SmoothStep
SoftClip
SoftClip+Affine
SoftExponential
softmarginloss
softmax
softmin
softplus
Softplus+Bias
Softplus^2-Affine-Gate
Softplus^3-Affine-Gate
SoftplusGLU
SoftplusSqrt-Affine-Gate
softshrink
SoftShrink-Affine-Gate
softsign
Softsign+Affine
SoftSign-Affine-Gate
Softsign-Sigmoid-Mix-Gate
SoftSignSquared-Affine-Gate
solarize
Spatial-Diff Sigmoid Gate
spherefaceloss
Spherical+Affine
SQRBF
Sqrt(ReLU)+Affine
sqrtreciprocalrsqrt
Square-Sigmoid-Affine-Gate
squared_euclidean
SquaredHingeLoss
squareplus
SReLU
SRS
std_mean
STL
structural_similarity_softplus
SupConLoss
SwAT
swiglu
swish
Swish(SiLU)-Affine-Gate
Swish^2+Bias
swish_layernorm
switchablenorm
SørensenDice
Tanh-Affine-Gate
tanhexp
TanhGLU
TanhLU
tanhshrink
Tanhshrink+Affine
TanhSlope-Affine-Gate
TanhSoft1
TanhSoft2
TanimotoCoefficient
TDLoss
TeLU
Temperature Softmax Channel Affine
tensor_roll
three_interpolate
thresholdscalenegate
topk_filtering
total_correlation_elu
transpose_scale
tripletloss
tripletmarginloss
TripletMarginWithDistanceLoss
TrustRegionPolicyOptimizationLoss
TsallisDivergenceLoss
tversky_loss
TverskyIndex
tverskyloss
TweedieLoss
upsample
ValueLoss
Variance
VariationOfInformation
vecdot
VIDLoss
voxel_hash
voxel_mean
voxel_to_point
wasserstein_energy_gelu
wasserstein_layernorm
waveletaffine
WeightDecay
wingloss
winsorize_scale_normalize
wiou
xIELU
xSiLU
xyz_to_rgb
yuv_to_rgb
zeropad2d
zeropad3d
zscoresigmoiddenormalize
仿射+ReLU

View File

@ -0,0 +1,293 @@
#!/usr/bin/env python3
"""Generate the implemented-operator checklist in README.md.
The checklist is driven by two sources:
- scripts/operator_targets.txt: known operators to track, one per line.
- S1 codes/: submitted implementations containing *cuda*.py files.
New implementations are marked as checked automatically when the discovered
operator name matches a target name. Operators discovered from submissions but
missing from the target file are included as checked rows as well.
"""
from __future__ import annotations
import argparse
import re
from pathlib import Path
from urllib.parse import quote
ROOT = Path(__file__).resolve().parents[1]
README = ROOT / "README.md"
S1_DIR = ROOT / "S1 codes"
TARGETS = ROOT / "scripts" / "operator_targets.txt"
START = "<!-- OPERATOR_CHECKLIST_START -->"
END = "<!-- OPERATOR_CHECKLIST_END -->"
def clean_operator(value: str | None) -> str | None:
if not value:
return None
text = value.strip()
text = re.sub(r"\s*\((?:Fused\s+)?CUDA\s+Kernel\)\s*$", "", text)
text = re.sub(r"\s+with custom CUDA kernel\s*$", "", text)
text = re.sub(r"(一次核内.*$", "", text)
text = re.sub(r".*$", "", text)
text = re.sub(r"。.*$", "", text)
text = text.strip(" :.。")
return text or None
def normalize_key(value: str) -> str:
return re.sub(r"\s+", "", value).casefold()
def read_text(path: Path) -> str:
return path.read_text(encoding="utf-8", errors="ignore")
def operator_from_torch(torch_path: Path) -> str | None:
if not torch_path.exists():
return None
text = read_text(torch_path)
if re.search(r"torch\.relu\(x \* self\.scale \+ self\.bias\)", text):
return "Affine+ReLU"
if re.search(
r"torch\.maximum\(x,\s*torch\.zeros_like\(x\)\).*torch\.log1p\(torch\.exp\(-ax\)\)",
text,
re.S,
):
return "BCEWithLogitsLoss"
match = re.search(r"return\s+F\.([A-Za-z0-9_]+)\(", text)
if match:
return match.group(1)
match = re.search(r"return\s+torch\.([A-Za-z0-9_]+)\(", text)
if match:
return match.group(1)
return None
def operator_from_prompt(prompt_path: Path) -> str | None:
if not prompt_path.exists():
return None
skip_prefixes = (
"You write custom CUDA kernels",
"你需要为下面给定的架构",
"你可以自由选择",
"给定架构",
"torchcode.py",
"cudacode.py",
"run_code.py",
)
for raw_line in prompt_path.read_text(encoding="utf-8", errors="ignore").splitlines():
line = re.sub(r"^\s*[#>*\-`]+\s*", "", raw_line).strip()
if not line:
continue
if line.startswith(skip_prefixes):
continue
match = re.match(r"^Operator\s*[:]\s*(.+)$", line)
if match:
return clean_operator(match.group(1))
match = re.match(r"^Objective\s*[:].*?\bfor\s+(.+?)\s+to\s+achieve", line)
if match:
return clean_operator(match.group(1))
match = re.match(r"^Implement\s+(?:a\s+|an\s+)?(.+?)(?:\s+on\b|\s+for\b|\s*[:]|$)", line)
if match:
return clean_operator(match.group(1))
match = re.search(r"“([^”]+)”", line)
if match:
return clean_operator(match.group(1))
match = re.search(r"算子\s*[:]\s*([^。;;,]+)", line)
if match:
return clean_operator(match.group(1))
match = re.match(r"^(.+?)融合\s*[:]", line)
if match:
return clean_operator(match.group(1) + "融合")
if len(line) <= 80:
return clean_operator(line)
return None
def discover_operator(directory: Path) -> str | None:
cuda_files = sorted(directory.glob("*cuda*.py"), key=lambda p: p.name.casefold())
if not cuda_files:
return None
cuda_base = cuda_files[0].stem
if re.match(r"^(example_)?cudacode$", cuda_base, re.I):
torch_files = sorted(directory.glob("*torch*.py"), key=lambda p: p.name.casefold())
specific_torch = [
path for path in torch_files if not re.match(r"^(example_)?torchcode$", path.stem, re.I)
]
if specific_torch:
return re.sub(r"_?torch(code)?$", "", specific_torch[0].stem, flags=re.I).strip()
return (
operator_from_prompt(directory / "prompt.txt")
or operator_from_torch(directory / "torchcode.py")
or cuda_base
)
return re.sub(r"_?cudacode$|_?cuda$", "", cuda_base, flags=re.I).strip()
def discover_implemented() -> dict[str, dict[str, object]]:
implemented: dict[str, dict[str, object]] = {}
if not S1_DIR.exists():
return implemented
for directory in sorted((path for path in S1_DIR.iterdir() if path.is_dir()), key=lambda p: p.name.casefold()):
operator = clean_operator(discover_operator(directory))
if not operator:
continue
key = normalize_key(operator)
row = implemented.setdefault(key, {"name": operator, "directories": []})
directories = row["directories"]
assert isinstance(directories, list)
directories.append(directory.name)
return implemented
def read_targets() -> list[str]:
if not TARGETS.exists():
return []
targets: list[str] = []
seen: set[str] = set()
for raw_line in TARGETS.read_text(encoding="utf-8").splitlines():
line = raw_line.strip()
if not line or line.startswith("#"):
continue
key = normalize_key(line)
if key in seen:
continue
seen.add(key)
targets.append(line)
return targets
def write_targets(targets: list[str]) -> None:
body = [
"# Operator targets tracked in README.md",
"# Add unimplemented operators here, one per line.",
"# scripts/update_operator_checklist.py checks them when matching implementations appear under S1 codes/.",
"",
*targets,
"",
]
TARGETS.write_text("\n".join(body), encoding="utf-8", newline="\n")
def link_for_directory(directory: str) -> str:
return f"[{directory}](S1%20codes/{quote(directory)})"
def build_section(targets: list[str], implemented: dict[str, dict[str, object]]) -> str:
target_by_key = {normalize_key(target): target for target in targets}
all_keys = set(target_by_key) | set(implemented)
checked = len([key for key in all_keys if key in implemented])
unchecked = len(all_keys) - checked
rows: list[tuple[bool, str, list[str]]] = []
for key in sorted(all_keys, key=lambda item: (item not in implemented, (target_by_key.get(item) or implemented[item]["name"]).casefold())):
item = implemented.get(key)
name = target_by_key.get(key) or str(item["name"])
directories = list(item["directories"]) if item else []
rows.append((item is not None, name, directories))
lines = [
START,
"## ✅ 算子实现状态",
"",
"该清单由 `scripts/update_operator_checklist.py` 根据 `scripts/operator_targets.txt` 和 `S1 codes/` 自动生成;新增待实现算子请写入目标清单,新增实现目录后运行 `python scripts/update_operator_checklist.py --sync-targets` 即可自动勾选。",
"",
f"- 已实现:{checked}",
f"- 未实现:{unchecked}",
f"- 跟踪总数:{len(all_keys)}",
"",
"<details>",
"<summary>展开查看算子实现状态</summary>",
"",
"| 状态 | 算子 | 实现目录 |",
"| --- | --- | --- |",
]
for done, name, directories in rows:
status = "[x]" if done else "[ ]"
links = "<br>".join(link_for_directory(directory) for directory in directories) if directories else "-"
lines.append(f"| {status} | {name.replace('|', r'\|')} | {links} |")
lines.extend(["", "</details>", END])
return "\n".join(lines)
def update_readme(section: str) -> None:
content = README.read_text(encoding="utf-8")
old_static_pattern = r"(?s)\n?<!-- IMPLEMENTED_OPERATORS_START -->.*?<!-- IMPLEMENTED_OPERATORS_END -->\n?"
content = re.sub(old_static_pattern, "\n", content)
pattern = rf"(?s){re.escape(START)}.*?{re.escape(END)}"
if re.search(pattern, content):
updated = re.sub(pattern, section, content)
else:
heading = re.compile(r"(?m)^## 📥")
if heading.search(content):
updated = heading.sub(section + "\n\n---\n\n## 📥", content, count=1)
else:
updated = content.rstrip() + "\n\n" + section + "\n"
updated = re.sub(r"(?m)(?:^---\n\s*){2,}(?=<!-- OPERATOR_CHECKLIST_START -->)", "---\n\n", updated)
README.write_text(updated.rstrip() + "\n", encoding="utf-8", newline="\n")
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument(
"--sync-targets",
action="store_true",
help="Append discovered implemented operators to scripts/operator_targets.txt.",
)
args = parser.parse_args()
implemented = discover_implemented()
targets = read_targets()
if args.sync_targets:
by_key = {normalize_key(target): target for target in targets}
for key, item in implemented.items():
by_key.setdefault(key, str(item["name"]))
targets = sorted(by_key.values(), key=str.casefold)
write_targets(targets)
section = build_section(targets, implemented)
update_readme(section)
print(
f"Updated README operator checklist: "
f"{len(implemented)} implemented operators, {len(targets)} tracked targets."
)
return 0
if __name__ == "__main__":
raise SystemExit(main())