
    bi                         d dl mZ d dlZd dlZddlmZ ddlmZ dej                  fdZ	 ed	d
      dej                  dej                  de
dedee
   dej                  dej                  fd       Zy)    )SequenceN   )register_kernel   )GAUDI_SW_VERweightc                 0    | dz  dz	  }| dz  dz  }||z  }|S )N          )r   out_1out_2outs       X/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/bitsandbytes/backends/hpu/ops.py_reverse_4bit_compress_formatr      s,    d]q Ec\aE
%-CJ    zbitsandbytes::dequantize_4bithpuAabsmax	blocksize
quant_typeshapedtypereturnc                     t        j                  |       t        j                  dk(  fd       t        j                   j                  t         j                  t         j
                  fv  fd        j                  t         j
                  k7  r j                  t         j
                          j                  d       t        r1t        j                  dk  st        j                  dk  rt                t         j                  j                  j                   |j                  |      |t!        j"                  |      f|      }|j                  |      }|S )Nnf4c                      d  S )Nzquant_type must be nf4, got r   )r   s   r   <lambda>z_.<locals>.<lambda>   s    0LZL.Y r   c                  "    d j                    S )Nz2quant_storage supports uint8 or bfloat16, but got )r   )r   s   r   r   z_.<locals>.<lambda>    s    DQWWIN r         )	out_shape	out_dtype)torch_check_is_size_checkr   bfloat16uint8viewreshaper   majorminorr   opsr   dequantize_nf4tomathprod)r   r   r   r   r   r   out_dqoutputs   `  `    r   _r6      s     
#	LLu$&YZ	LL	ENNEKK00N 	ww%++FF5;;			"A++a/<3E3E3J)!, YY]]))			%99U#% * F ^^E"FMr   )collections.abcr   r2   r&   _opsr   utilsr   Tensorr   intstrr   r6   r   r   r   <module>r=      s    $   #  
%,,  0%8#||#LL# # 	#
 C=# ;;# \\# 9#r   