분류 전체보기102 [Verilog] Fixed point Scaler 연산 (Sign 연산 - right shift) verilog에서 shift는 4가지 형태로 존재한다. >>, >, 2; //c == 5'b11101, 'cause sign bit was `1` d = a >> 3을 했는데 sign bit으로 채워지지 않는 걸 발견했다. 보아 하니 a가 signed으로 casting 되어 있어야 했다. reg signed [9:0] b = 10'sb11_0101_0101; reg signed [9:0] a_signed; reg [9:0] a_unsigned; always_comb begin a_signed = b >>> 2; a_unsigned = b >> 2; end #a_signed 1111010101 #a_unsigned 0011010101 혹은 연산할 때 casting 방식으로 wire [PSUM_WL+SCAL.. 2023. 9. 9. [Python] 3x3 depthwise convolution 코드 # loading the layer file layer_name = 'intro.conv1.convs.2' inp = np.load(f'npy/{layer_name}_inp.npy') wgt = np.load(f'npy/{layer_name}_wgt.npy') try: bias = np.load(f'npy/{layer_name}_bias.npy') except: bias_flag = False else: bias_flag = True out = np.load(f'npy/{layer_name}_out.npy') # mapping fixed point inp_fxp = inp.astype(np.int64) wgt_fxp = wgt.astype(np.int64) psum_fxp = np.zeros_like(o.. 2023. 9. 9. [Python] 1x1 point convolution 코드 # loading the layer file layer_name = 'intro.conv1.convs.1' inp = np.load(f'npy/{layer_name}_inp.npy') wgt = np.load(f'npy/{layer_name}_wgt.npy') try: bias = np.load(f'npy/{layer_name}_bias.npy') except: bias_flag = False else: bias_flag = True out = np.load(f'npy/{layer_name}_out.npy') # changing to fixed point inp_fxp = inp.astype(np.int64) wgt_fxp = wgt.astype(np.int64) psum_fxp = np.zeros_li.. 2023. 9. 9. [Verilog] Fixed point Scaler 연산 (Quantization - 비트 수가 다른 파라미터와 연산) Pytorch에서 quantization을 구현 코드를 verilog로 변환하기 위해서는 fixed point scaler 연산이 필요하다. 연산에 있어서 필요한 여러 개념들이 있는데 아래 블로그 글을 참고하면 좋다. 2023.09.05 - [Digital Logic/Verilog] - [Verilog] Fixed point Scaler 연산 (Quantization - binary 연산) 2023.09.06 - [Digital Logic/Verilog] - [Verilog] Fixed point Scaler 연산 (Quantization - sign 곱셈/덧셈 연산) [Verilog] Fixed point Scaler 연산 (Quantization - binary 연산) Fixed point 란? ve.. 2023. 9. 6. [Verilog] Fixed point Scaler 연산 (Quantization - sign 곱셈/덧셈 연산) Fixed point Scaler 연산의 기초는 아래 블로그 글을 참고하면 좋다. 2023.09.05 - [Digital Logic/Verilog] - [Verilog] Fixed point Scaler 연산 (Quantization - binary 연산) [Verilog] Fixed point Scaler 연산 (Quantization - binary 연산) Fixed point 란? verilog로 프로그래밍 하기 위해서는 값의 형태가 fixed point로 구성되어야 한다. 위의 그림처럼 sign / Integer / Fraction 으로 되어 있다. 특히 quantization의 경우, Integer와 scaler로 나눠서 연산 rubber-tree.tistory.com Scaling 연산 Res.. 2023. 9. 6. [Verilog] Fixed point Scaler 연산 (Quantization - binary 연산) Fixed point 란? verilog로 프로그래밍 하기 위해서는 값의 형태가 fixed point로 구성되어야 한다. 위의 그림처럼 sign / Integer / Fraction 으로 되어 있다. 특히 quantization의 경우, Integer와 scaler로 나눠서 연산하며 scaler의 integer와 fraction이 각각 몇 bit인지를 알고 있어야 된다. Fixed point Scaler 연산 아래와 같이 quantization하는 pytorch 코드가 있다. // rescaling rescale = self.a_max / self.a_max_origin inp = inp * rescale // rounding inp = torch.round(inp) inp = inp * (1. / se.. 2023. 9. 5. NPU 부흥을 위해 꼭 필요한 것 '컴파일러' https://byline.network/2021/12/08-72/ 연봉 10억원 줘도 못구하는 NPU 컴파일러 개발자 - Byline Network ‘챗GPT와 AI반도체의 미래’ 스터디&네트워킹 모집합니다 (얼리버드 할인 중) NPU 기업들이 컴파일러 인재... byline.network NPU 기업들이 컴파일러 인재 찾기에 혈안이다. 퓨리오사, 리벨리온 등 국내 주요 NPU 기업 모두 컴파일러 인재 채용에 발벗고 나섰다. 아직 초기 단계인 AI반도체 시장이 활성화될 수 있는 핵심 열쇠가 컴파일러가 될 것이라는 판단에서다. NPU는 기존에 사용되던 범용 반도체에 비해 구조가 다소 복잡하다. 범용 반도체는 입력된 데이터를 순차적으로 처리하는 ‘폰 노이만(Von Neumann)’ 아키텍처를 기반으로 한다.. 2023. 2. 18. 이전 1 2 3 4 5 ··· 15 다음