L idddlZGddejjZGddejjZGddeZGdd eZGd d eZGd d ejjZGddejjZ ejfdZ y)NceZdZfdZej j dZej j dZej j dZ xZ S) MkldnnLinearct||jd|jj ||j +|jd|j j y|jdt j|jjdgt jj y)Nweightbiasrdtype) super__init__register_bufferr to_mkldnnrtorchzerossizefloatself dense_moduler __class__s X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/utils/mkldnn.pyr zMkldnnLinear.__init__s  X|':':'D'DU'KL    (  ):):)D)D)F G   \0055a89MWWY [c|jj|jj|jfSNrto_densertrainingrs r __getstate__zMkldnnLinear.__getstate__- $$& (:(:(r?r@rArr r rrrrrrrrs rr z_MkldnnConvNd.__init__*s ")) #++ $-- "))    (  ):):)D)D)F G   \0055a89MWWY [rc|jj|jj|jfSrrrs rrz_MkldnnConvNd.__getstate__<rrc tj||j|j|j|j |j |jSr)rmkldnn_convolutionrrr?r>r@rArr/s rr3z_MkldnnConvNd.forward@sB'' KK II LL KK MM KK r) r5r6r7__doc__ __constants__r rr8r9rr3r:r;s@rr=r=%sO7?M[$ YYMM YYrr=cVeZdZfdZej j dZxZS) MkldnnConv1dczt|||jd|jj |yNrr r r rr rs rr zMkldnnConv1d.__init__Ms1 & X|':':'D'DU'KLrcx|dj|_|dj|_|d|_yr!r$r%s rr'zMkldnnConv1d.__setstate__Rr(r r5r6r7r rr8r9r'r:r;s@rrKrKLs'M  YY!!rrKcVeZdZfdZej j dZxZS) MkldnnConv2dc  t|||jdtjj j |jj||j|j|j|jyrM) r r r rr+r,mkldnn_reorder_conv2d_weightrr r?r>r@rArs rr zMkldnnConv2d.__init__Ze & Xuxx||'P'P    ) )% 0 LL KK MM KK ( rctjjj|dj |j |j |j|j|_ |dj |_ |d|_ yr!) rr+r,rTr r?r>r@rArrrr%s rr'zMkldnnConv2d.__setstate__dihhll?? !H   LL KK MM KK  !H&&( a rrPr;s@rrRrRY& YY!!rrRcVeZdZfdZej j dZxZS) MkldnnConv3dc  t|||jdtjj j |jj||j|j|j|jyrM) r r r rr+r,mkldnn_reorder_conv3d_weightrr r?r>r@rArs rr zMkldnnConv3d.__init__prUrctjjj|dj |j |j |j|j|_ |dj |_ |d|_ yr!) rr+r,r\r r?r>r@rArrrr%s rr'zMkldnnConv3d.__setstate__zrWrrPr;s@rrZrZorXrrZceZdZddgZfdZej jdZej jdZ ej jdZ xZ S)MkldnnBatchNormexponential_average_factorepsc2t||jrJ|jsJ|jsJ|j d|_n|j |_|j|_|jd|jj|jd|jj|jd|jj|jd|jjy)Ngrr running_mean running_var)r r rtrack_running_statsaffinemomentumr`rar rr rrcrdrCs rr zMkldnnBatchNorm.__init__s ((((////""""  (.1D +.:.C.CD +## X|':':'D'D'FG V\%6%6%@%@%BC ^\-F-F-P-P-RS ]L,D,D,N,N,PQrc|jj}|jj}|jj}|jj}|||||j fSr)rrrrcrdr)rrrrcrds rrzMkldnnBatchNorm.__getstate__sc%%'yy!!#((113 &&//1 lKGGrc|dj|_|dj|_|dj|_|dj|_|d|_y)Nrr"r#)r rrrcrdrr%s rr'zMkldnnBatchNorm.__setstate__s_Ah((* !H&&( !!H..0 8--/a rc tj||j|j|j|j d|j |jd S)NF)r batch_normrrrcrdr`rarGs rr3zMkldnnBatchNorm.forwardsN KK II         + + HH   r) r5r6r7rIr rr8r9rr'r3r:r;s@rr_r_so159MR$ YYHH YY!! YY    rr_ceZdZfdZej j dZej j dZej j dZ xZ S) MkldnnPrelucxt||jd|jj |yrMrNrs rr zMkldnnPrelu.__init__s/  X|':':'D'DU'KLrcN|jj|jfSr)rrrrs rrzMkldnnPrelu.__getstate__s $$& 66rcH|dj|_|d|_y)Nrr")r rrr%s rr'zMkldnnPrelu.__setstate__s!Ah((* a rc|jr|n|j}tj||j}|jr|}|S|j }|Sr)r*r rprelurrr.s rr3zMkldnnPrelu.forwardsN 1;;x5 H*2):):)<rr4r;s@rroroscM YY77 YY!! YYrroc|tjtjtjfvsJddfd||S)Nz6MKLDNN only support float, bfloat16, and half path nowcxt|tjjr t ||St|tjj r t ||St|tjjr t||St|tjjr t||St|tjjtjjfr t|St|tjjr t||S|Sr) isinstancernnLinearrConv1drKConv2drRConv3drZ BatchNorm2d BatchNorm3dr_PReLUro)mds rm_fnzto_mkldnn..m_fns a )1% % 588?? +1% % 588?? +1% % 588?? +1% % EHH00%((2F2FG H#1% % 588>> *q!$ $Hrc r||}|jD]\}}t|||||Sr)named_childrensetattr)rrnew_mnamesub_mrm_fn_recs rrzto_mkldnn..m_fn_recsBQ ++- 5KD% E4%!3 4 5 r)rrbfloat16half)moduler rrs @@rr r sI U[[%..%**= =A@A =$ FE ""r) rr8 ScriptModulerr=rKrRrZr_rorr rrrs 599))@$EII**$N != !!=!,!=!.1 eii,,1 f%))((*"KK#r