From cb19aa039de43fc94076aff466a963aa559f23b1 Mon Sep 17 00:00:00 2001 From: YuxuanFan <2961852394@qq.com> Date: Sun, 26 Apr 2026 01:27:13 -0700 Subject: [PATCH 1/2] Add auto-updated operator checklist --- README.md | 599 ++++++++++++++++++++++++++- scripts/operator_targets.txt | 581 ++++++++++++++++++++++++++ scripts/update_operator_checklist.py | 293 +++++++++++++ 3 files changed, 1472 insertions(+), 1 deletion(-) create mode 100644 scripts/operator_targets.txt create mode 100644 scripts/update_operator_checklist.py diff --git a/README.md b/README.md index 0814a6d..4785a3b 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,603 @@ [赛题入门](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)。 +--- + + +## ✅ 算子实现状态 + +该清单由 `scripts/update_operator_checklist.py` 根据 `scripts/operator_targets.txt` 和 `S1 codes/` 自动生成;新增待实现算子请写入目标清单,新增实现目录后运行 `python scripts/update_operator_checklist.py --sync-targets` 即可自动勾选。 + +- 已实现:577 +- 未实现:0 +- 跟踪总数:577 + +
+展开查看算子实现状态 + +| 状态 | 算子 | 实现目录 | +| --- | --- | --- | +| [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+GELU(tanh 近似) | [Ljy123_#10](S1%20codes/Ljy123_%2310) | +| [x] | Bias+SiLU(Swish)融合 | [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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[uucoco 31](S1%20codes/uucoco%2031)
[uucoco_#1](S1%20codes/uucoco_%231) | +| [x] | GDL | [hli28146_#55](S1%20codes/hli28146_%2355) | +| [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] | GLU(Gated 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)
[ZZZJ2](S1%20codes/ZZZJ2) | +| [x] | GrowingCosineUnit | [uucoco_#35](S1%20codes/uucoco_%2335) | +| [x] | GTU(tanh(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)
[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)
[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)
[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)
[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)
[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)
[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)
[Ljy123_#58](S1%20codes/Ljy123_%2358) | +| [x] | logcoshdiceloss | [hli28146_#56](S1%20codes/hli28146_%2356) | +| [x] | LogCoshLoss | [Lwh20070813 42](S1%20codes/Lwh20070813%2042)
[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)
[hli28146_#10](S1%20codes/hli28146_%2310)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[Ljy123_#8](S1%20codes/Ljy123_%238)
[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)
[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)
[uucoco_#48](S1%20codes/uucoco_%2348) | +| [x] | SmoothAbs | [gsd123_#74](S1%20codes/gsd123_%2374) | +| [x] | SmoothL1Loss | [gsd123 40](S1%20codes/gsd123%2040)
[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)
[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)
[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)
[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)
[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)
[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)
[ZZZJ 30](S1%20codes/ZZZJ%2030) | +| [x] | TripletMarginWithDistanceLoss | [gsd123 39](S1%20codes/gsd123%2039)
[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)
[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) | + +
+ + --- ## 📥 参赛流程 @@ -209,4 +806,4 @@ ## FAQ -[第一季FAQ参考](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/tree/main/FAQ.md) \ No newline at end of file +[第一季FAQ参考](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/tree/main/FAQ.md) diff --git a/scripts/operator_targets.txt b/scripts/operator_targets.txt new file mode 100644 index 0000000..44e89c9 --- /dev/null +++ b/scripts/operator_targets.txt @@ -0,0 +1,581 @@ +# 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+GELU(tanh 近似) +Bias+SiLU(Swish)融合 +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 +GELU-Affine-Gate +gelu_dropout +gempool +GeneratorLoss +giouloss +global_average_pooling +global_response_normalization +GLU(Gated Linear Unit)融合 +Gompertz-Affine-Gate +gowerdistance +GradientClip +gridsample1d +Group-Softmax-Affine gating +groupnorm +GrowingCosineUnit +GTU(tanh(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 diff --git a/scripts/update_operator_checklist.py b/scripts/update_operator_checklist.py new file mode 100644 index 0000000..1c091f4 --- /dev/null +++ b/scripts/update_operator_checklist.py @@ -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 = "" +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)}", + "", + "
", + "展开查看算子实现状态", + "", + "| 状态 | 算子 | 实现目录 |", + "| --- | --- | --- |", + ] + + for done, name, directories in rows: + status = "[x]" if done else "[ ]" + links = "
".join(link_for_directory(directory) for directory in directories) if directories else "-" + lines.append(f"| {status} | {name.replace('|', r'\|')} | {links} |") + + lines.extend(["", "
", END]) + return "\n".join(lines) + + +def update_readme(section: str) -> None: + content = README.read_text(encoding="utf-8") + old_static_pattern = r"(?s)\n?.*?\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,}(?=)", "---\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()) -- 2.34.1 From 5dcbd90d821b6e695c33e5acd14b03989e264f7e Mon Sep 17 00:00:00 2001 From: YuxuanFan <2961852394@qq.com> Date: Sun, 26 Apr 2026 01:56:32 -0700 Subject: [PATCH 2/2] Add GEGLU operator sample --- README.md | 5 +- S1 codes/geglu_sample/geglu_cuda.py | 89 ++++++++++++++++++++++++++++ S1 codes/geglu_sample/geglu_torch.py | 25 ++++++++ S1 codes/geglu_sample/prompt.txt | 15 +++++ S1 codes/geglu_sample/run_code.py | 67 +++++++++++++++++++++ scripts/operator_targets.txt | 1 + 6 files changed, 200 insertions(+), 2 deletions(-) create mode 100644 S1 codes/geglu_sample/geglu_cuda.py create mode 100644 S1 codes/geglu_sample/geglu_torch.py create mode 100644 S1 codes/geglu_sample/prompt.txt create mode 100644 S1 codes/geglu_sample/run_code.py diff --git a/README.md b/README.md index 4785a3b..417fbd1 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,9 @@ 该清单由 `scripts/update_operator_checklist.py` 根据 `scripts/operator_targets.txt` 和 `S1 codes/` 自动生成;新增待实现算子请写入目标清单,新增实现目录后运行 `python scripts/update_operator_checklist.py --sync-targets` 即可自动勾选。 -- 已实现:577 +- 已实现:578 - 未实现:0 -- 跟踪总数:577 +- 跟踪总数:578
展开查看算子实现状态 @@ -231,6 +231,7 @@ | [x] | gaussian_pdf | [ZZZJ_#120](S1%20codes/ZZZJ_%23120) | | [x] | GaussianNLLLoss | [hli28146_#113](S1%20codes/hli28146_%23113)
[uucoco 31](S1%20codes/uucoco%2031)
[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) | diff --git a/S1 codes/geglu_sample/geglu_cuda.py b/S1 codes/geglu_sample/geglu_cuda.py new file mode 100644 index 0000000..51412ab --- /dev/null +++ b/S1 codes/geglu_sample/geglu_cuda.py @@ -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::Tensor geglu_cuda(torch::Tensor input); + """, + cuda_sources=""" + #include + #include + + __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<<>>( + x.data_ptr(), + output.data_ptr(), + 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) diff --git a/S1 codes/geglu_sample/geglu_torch.py b/S1 codes/geglu_sample/geglu_torch.py new file mode 100644 index 0000000..68641fe --- /dev/null +++ b/S1 codes/geglu_sample/geglu_torch.py @@ -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 [] diff --git a/S1 codes/geglu_sample/prompt.txt b/S1 codes/geglu_sample/prompt.txt new file mode 100644 index 0000000..547fb35 --- /dev/null +++ b/S1 codes/geglu_sample/prompt.txt @@ -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. diff --git a/S1 codes/geglu_sample/run_code.py b/S1 codes/geglu_sample/run_code.py new file mode 100644 index 0000000..95e4a4b --- /dev/null +++ b/S1 codes/geglu_sample/run_code.py @@ -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() diff --git a/scripts/operator_targets.txt b/scripts/operator_targets.txt index 44e89c9..55a7f01 100644 --- a/scripts/operator_targets.txt +++ b/scripts/operator_targets.txt @@ -195,6 +195,7 @@ gaussian_filter_2d gaussian_pdf GaussianNLLLoss GDL +geglu GELU-Affine-Gate gelu_dropout gempool -- 2.34.1