forked from ccf-ai-infra/GPUCodeForces
Compare commits
No commits in common. "feature/geglu-operator-sample" and "main" have entirely different histories.
feature/ge
...
main
600
README.md
600
README.md
|
|
@ -22,604 +22,6 @@
|
|||
[赛题入门](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+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)<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] | 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)<br>[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)<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 -->
|
||||
|
||||
---
|
||||
|
||||
## 📥 参赛流程
|
||||
|
|
@ -807,4 +209,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)
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
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)
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
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 []
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
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.
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
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()
|
||||
|
|
@ -1,582 +0,0 @@
|
|||
# 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
|
||||
geglu
|
||||
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
|
||||
|
|
@ -1,293 +0,0 @@
|
|||
#!/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())
|
||||
Loading…
Reference in New Issue