@@ -194,6 +194,24 @@ def _register_kernels():
194194 "class_name" : "InferPool" ,
195195 },
196196 },
197+ {
198+ "name" : "HWSoftmax" ,
199+ "module" : "finn.custom_op.fpgadataflow.hwsoftmax" ,
200+ "class_name" : "HWSoftmax" ,
201+ "infer_transform" : {
202+ "module" : "finn.transformation.fpgadataflow.convert_to_hw_layers" ,
203+ "class_name" : "InferHWSoftmax" ,
204+ },
205+ },
206+ {
207+ "name" : "LayerNorm" ,
208+ "module" : "finn.custom_op.fpgadataflow.layernorm" ,
209+ "class_name" : "LayerNorm" ,
210+ "infer_transform" : {
211+ "module" : "finn.transformation.fpgadataflow.convert_to_hw_layers" ,
212+ "class_name" : "InferLayerNorm" ,
213+ },
214+ },
197215 {
198216 "name" : "Shuffle" ,
199217 "module" : "finn.custom_op.fpgadataflow.shuffle" ,
@@ -339,6 +357,13 @@ def _register_backends():
339357 "target_kernel" : "finn:GlobalAccPool" ,
340358 "language" : "hls" ,
341359 },
360+ {
361+ "name" : "HWSoftmax_hls" ,
362+ "module" : "finn.custom_op.fpgadataflow.hls.hwsoftmax_hls" ,
363+ "class_name" : "HWSoftmax_hls" ,
364+ "target_kernel" : "finn:HWSoftmax" ,
365+ "language" : "hls" ,
366+ },
342367 {
343368 "name" : "LabelSelect_hls" ,
344369 "module" : "finn.custom_op.fpgadataflow.hls.labelselect_hls" ,
@@ -410,6 +435,13 @@ def _register_backends():
410435 "target_kernel" : "finn:ConvolutionInputGenerator" ,
411436 "language" : "rtl" ,
412437 },
438+ {
439+ "name" : "LayerNorm_rtl" ,
440+ "module" : "finn.custom_op.fpgadataflow.rtl.layernorm_rtl" ,
441+ "class_name" : "LayerNorm_rtl" ,
442+ "target_kernel" : "finn:LayerNorm" ,
443+ "language" : "rtl" ,
444+ },
413445 {
414446 "name" : "MVAU_rtl" ,
415447 "module" : "finn.custom_op.fpgadataflow.rtl.matrixvectoractivation_rtl" ,
0 commit comments