
    9if;                     2   S SK r S SKrS SKrS SKJr  S SKrS SKJr  S SKJ	r
  \
R                  " 5       r	 S SKJrJrJr   " S S5      rSr\" \R$                  " \ R&                  " \5      5      / S	Q5      r " S S\R2                  R4                  5      rS\R8                  4S jrS\R8                  S\R8                  S\4S jr " S S\R@                  RB                  5      r"SS jr#g! \ a&  rSr\	R/                  S
\" \5      -   5         SrCNSrCff = f)    N)List)	Parameter)logger)LazyKernelCModuleKernelFunctionround_upc                   ,    \ rS rSrS\S\\   4S jrSrg)Kernel   codefunction_namesc           	          Xl         X l        [        U R                   5      U l        U R                   H#  n[	        X[        U R                  U5      5        M%     g N)r   _function_namesr   _cmodulesetattrr   )selfr   r   names       k/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/nlp/chatglm2/quantization.py__init__Kernel.__init__   sB    I#1 -dii8DM,,N4==$$GH -    )r   r   r   N)	__name__
__module____qualname____firstlineno__bytesr   strr   __static_attributes__ r   r   r
   r
      s    	I 	IS	 	Ir   r
   a  $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)int4WeightCompressionint4WeightExtractionFloatint4WeightExtractionHalfint8WeightExtractionFloatint8WeightExtractionHalfzFailed to load cpm_kernels:c                       \ rS rSr\S\R                  S\R                  S\R                  4S j5       r\S\R                  4S j5       rSr	g	)
W8A16Linear+   inpquant_wscale_wc                    UR                  5       U l        X@l        UR                  S5      nUR                  5       R	                  SUR                  S5      5      n[        X#U5      nUR                  5       U l        UR                  UR                  5       5      nU R                  XU5        UR                  " U R                  S S U4-   6 $ )Nr   )
size	inp_shapeweight_bit_width
contiguousviewextract_weight_to_halfweight_shapemmtsave_for_backward)ctxr)   r*   r+   r0   out_featuresweightoutputs           r   forwardW8A16Linear.forward-   s     
/||Ann##B5':JK!;;=
#cG4{{S]]3B/<2BBDDr   grad_outputc                 z   U R                   u  p#n[        X4U R                  5      nUR                  5       R	                  SUR                  S5      5      nUR                  U5      nUR                  5       R                  U5      nUR	                  U R                  5      UR	                  U R                  5      S S 4$ )Nr-   r   )
saved_tensorsr3   r0   r1   r2   r.   r5   r6   r/   r4   )r8   r>   r)   r*   r+   r:   
grad_inputgrad_weights           r   backwardW8A16Linear.backward:   s     # 1 1g'#:N:NO!,,.33BAG ^^F+
!mmo((-s}}-{/?/?0#T* 	*r   r    N)
r   r   r   r   staticmethodtorchTensorr<   rC   r   r    r   r   r'   r'   +   sZ    
E%,, 
E 
E
E 
E *5<< * *r   r'   r:   c                    [         R                  R                  U R                  5         U R                  S5      U R                  S5      p!US-  S:X  d   eUS-  n[         R                  " X[         R
                  SS9n[         R                  R                  5       nUSS4n[        [        US5      S5      SS4n[        R                  UUSU[        R                  " U R                  5       5      [        R                  " UR                  5       5      [        R                  " U5      [        R                  " U5      /5        UsS S S 5        $ ! , (       d  f       g = f)Nr         cudadtypedevice       )rF   rK   rN   r.   emptyint8current_streamminr   kernelsr!   ctypesc_void_pdata_ptrc_int32)r:   nmoutstreamgridDimblockDims          r   compress_int4_weightr`   E   s   			6==	){{1~v{{1~11uzzFkk!ejj@**,a)B.15%% 12/q!q!		
 - 
*	)	)s   DE
E
scale_listsource_bit_widthc                 d   UR                   [        R                  [        R                  4;   d   eU R                   [        R                  4;   d   eUS:X  a%  U R                  UR                   5      US S 2S 4   -  $ US:X  a?  UR                   [        R                  :X  a  [        R                  O[        R                  nO S5       e[        R                  R                  U R                  5         U R                  S5      U R                  S5      pT[        R                  " UUSU-  -  UR                   SS9n[        R                  R                  5       nUSS4n[        [        US5      S	5      SS4n	U" UU	SU[         R"                  " U R%                  5       5      [         R"                  " UR%                  5       5      [         R"                  " UR%                  5       5      [         R&                  " U5      [         R&                  " U5      /5        UsS S S 5        $ ! , (       d  f       g = f)
N      zUnsupported bit-widthr   rI   rK   rL   rO   rP   )rM   rF   halfbfloat16rR   torU   r#   int4WeightExtractionBFloat16rK   rN   r.   rQ   rS   rT   r   rV   rW   rX   rY   )
r:   ra   rb   funcrZ   r[   r\   r]   r^   r_   s
             r   r3   r3   _   s   

ENN;;;;<<EJJ<'''1yy))*Z4-@@@	Q	0:0@0@EJJ0NG,,55 	 	.--u			6==	){{1~v{{1~1kk&&'""	
 **,a)B.15 12
 3 3 56/q!q!	
 3 
*	)	)s   2D%H!!
H/c                   B   ^  \ rS rSr    SS\4U 4S jjjrS rSrU =r$ )QuantizedLinear   r0   c                 :  > [         T
U ]  5         Xl        UR                  n	Ub  U(       aT  [        R
                  " U	S   U	S   U-  S-  [        R                  US9U l        [        R
                  " U	S   XTS9U l        OUR                  5       R                  SS9R                  SUS-
  -  S-
  -  U l        [        R                  " X R                  S S 2S 4   -  5      R                  [        R                  5      U l        US:X  a  [        U R                  5      U l        [        U R                  R                  U5      S	S
9U l        [        U R                  R                  U5      S	S
9U l        Ub  [        UR                  U5      S	S
9U l        g S U l        g )Nr   rI   rd   rL   r-   )dimrJ   re   F)requires_grad)superr   r0   shaperF   rQ   rR   r:   weight_scaleabsmaxvaluesroundrh   r`   r   bias)r   r0   r:   rx   rN   rM   
empty_initargskwargsrr   	__class__s             r   r   QuantizedLinear.__init__   sh    	 0>Z++aa++q0jj	DK
 !&a!6D !'

 0 0R 0 8 ? ?%)*a/!1D++f/@/@D/I&IJMM

DK1$24;;?v 6eL%  (? 6:5E GGFO52	KO 		r   c                     [         R                  XR                  U R                  U R                  5      nU R
                  b  X R
                  -   nU$ r   )r'   applyr:   rs   r0   rx   )r   inputr;   s      r   r<   QuantizedLinear.forward   sD    ""5++t7H7H#'#8#8:99 ii'Fr   )rx   r:   r0   rs   )NcpuNF)	r   r   r   r   intr   r<   r   __classcell__)r|   s   @r   rl   rl      s1    
 !"P#&"P "PH r   rl   c           
         U R                    GHh  n[        UUR                  R                  R                  R                  [        R                  R                  5       5      UR                  R                  R                  UR                  R                  R                  R                  Uc*  UR                  R                  R                  R                  OUUS9UR                  l        [        UUR                  R                  R                  R                  [        R                  R                  5       5      UR                  R                  R                  UR                  R                  R                  R                  Uc*  UR                  R                  R                  R                  OUUS9UR                  l        [        UUR                  R                  R                  R                  [        R                  R                  5       5      UR                  R                  R                  UR                  R                  R                  R                  Uc*  UR                  R                  R                  R                  OUUS9UR                  l        [        UUR                  R                  R                  R                  [        R                  R                  5       5      UR                  R                  R                  UR                  R                  R                  R                  Uc*  UR                  R                  R                  R                  OUUS9UR                  l        GMk     U $ )z)Replace fp16 linear with quantized linear)r0   r:   rx   rM   rN   ry   )layersrl   self_attentionquery_key_valuer:   rh   rF   rK   current_devicerx   rM   rN   densemlpdense_h_to_4hdense_4h_to_h)modelr0   ry   rN   layers        r   quantizer      s   />-''77>>AA

))+-%%55::&&66==CC~ ''77>>EE#)!0#, &5-''--4477

))+-%%++00&&,,3399~ ''--44;;#)!&#" #2-99**1144

))+-((--))))0066~ 99**1188#)!##		 #2-99**1144

))+-((--))))0066~ 99**1188#)!##		9 L Lr   )FN)$base64bz2rV   typingr   rF   torch.nn.parameterr   modelscope.utilsr   logging
get_loggercpm_kernels.kernels.baser   r   r   r
   quantization_code
decompress	b64decoderU   	Exception	exceptionwarningr   autogradFunctionr'   rG   r`   r   r3   nnModulerl   r   r    r   r   <module>r      s    
    ( .				CTTI I Psv''(9:;	
	G*%..)) *4 4&5<< &U\\ &-0&R+ehhoo +\(a  CG
NN03y>ABBCs   AC* *D0DD