전체 글 115

자일링스는 머신러닝 비즈니스에서 살아남을 수 있을까?

그동안 여러 고객들을 만나왔지만, 머신러닝과 관련된 많은 엔지니어분들은 소프트웨어에 완전히 바이어스 되어 있기 때문에, FPGA의 장점을 설명해도 이해하지 못하는 경우가 많이 있었습니다. 사실 FPGA 엔지니어도, 이 장점을 잘 살릴 수 있는 방법을 잘 모른다고 하는 것이 솔직한 고백이죠. 서로를 모르는 두 사람이 만났으니 일이 잘될리가 있나요? 같은 한국말로 얘기해도 태반이 영어단어인데, 서로가 허공을 가르는 말만 하다가, 서로 이해하는 척 하고 본사에 문의해 보겠다고 합니다. 본사는 비즈니스 크기가 얼마나되느냐 라는 하나마나한 얘기하다가 슬슬 서로에게 대한 호감이 떨어지고, 서로 바이 바이 FPGA 설계도 어렵지만, 그 특성을 이해하고 ML에 가져다 붙이는 것도 일도 만만치는 않습니다. 다 아는 얘기..

카테고리 없음 2022.01.31

중국 조건부 승인 <= 자일링스와 AMD의 합병, Jan2022

아래 글을 쓴지 얼마 안되서, 오늘 드디어 중국에서 조건부로 합병을 승인했네요. 이제 드디어 이메일 주소가 XILINX 에서 AMD 로 바뀔려나 봅니다. ========================================================================== 자일링스와 AMD 합병이 마무리 될지는 중국정부의 마지막 승인에 달려있습니다. 원래 2021년 11월 정도면 승인이 떨어지고 무사히 합병하게 되었겠지만, 아직도 그 승인 절차가 요원합니다. 이번 분기에는 마무리될까요? AMD와 자일링스의 합병은 어떤 시너지가 나는 것일까? 궁금한 부분들이 많이 있겠지만, 일단 자일링스의 역사를 살펴보는 것이 좋을 것 같습니다. 제가 2003년 부터 자일링스에서 일했으니, 한 회사에서 꽤 ..

support history 2022.01.22

eTOPS가 뭐지?

TOPS는 머신러닝 관련 프로세서의 성능을 측정하는 중요한 파라미터입니다. 그런데 eTOPS라는 단어를 발견하고 이건 뭘까 궁금하던 차에, ~에 해당하는 equivalent 첫 글자 'e'인 것을 알았습니다. 오호라~ 이게 참 뭐라하긴 그렇지만, 개발자들은 요 의미를 잘 생각해야 합니다. 순진한게 100eTOPS라고 하면 앞에 숫자 100만 보이니까 제법 성능이 나올 것이라 생각하지만, 이 숫자를 만들기 위해서는 엄청나게 최적화된 조건에서 나온 숫자라는 것으로 예측할 수 있어야 합니다. 그런 최적화 조건은 일반적인 상용제품에서는 만들기 어렵기 때문에, 실제 숫자는 이 페이퍼에서 나온 숫자보다 훨~씬 더 떨어진다 것을 각오하고 벤치마킹을 해야 합니다. 왜 그럴까요? 제가 그동안 경험한 것을 바탕으로 설명을..

support history 2022.01.22

2022년 반도체 수급문제

여전히 그 끝이 보이지 않네요. 요즘 반도체 세일즈 분들은 부품 딜리버리가 거의 60주 정도 나오고 있기 때문에 고객분들에게 주문을 미리 넣어달라고 부탁하고 있습니다. 예전엔 보통 12주 또는 16주 정도 시간이 걸렸는데, 이게 웬일입니까? 1년 넘게 걸린다는 얘기를 들으면 보통 '장난 하시는 겁니까?' 라는 생각이 드는게 당연할겁니다. 하지만 부품 발주가 없으면, 시스템에 등록도 되지 않기 때문에 세일즈 분들이 딜리버리를 조정할 수 있는 방법이 없어서, 60주 딜리버리라도 일단 주문을 해야, 세일즈 분들이 딜리버리를 챙길 수 있습니다. 혹시 개발물량으로 부품을 4~5개 정도 필요로 하시는 분들이 있는데, 이런 분들은 세일즈에게 개발물량이라고 말씀하시면, 보다 빠르게 부품을 공급 받을 수 있습니다. 다만..

support history 2022.01.22

리눅스 커널이 패닉상태로, 개발자는 공황상태로, illegal opcode

리눅스가 패닉으로 빠지는 상황은 많이 있지만, 일주일이나 한달에 한번 패닉에 빠지는 경우엔 어떻게 디버깅을 해야할지 참 남감합니다. 뚫어지라고 쳐다볼 수도 없고, 머라 머라 메세지가 줄줄줄 나오는데, 뭐라고 해석을 해야할지 도통 머리가 아픈 경우가 많이 있습니다. 프로세서는 어지간하면 프로그램을 코드를 읽고, 해석하고, 계속 실행하려고 합니다. 하지만 나누기 연산을 하려고 하는데 분자 값이 '0'이면 (1/2 = 0.5, 1/4 = 0.25, ... 1/0 = inf) 프로세서는 더 이상 일 못하겠다고 한마디 비명을 지르고 예외처리 상태로 빠지게 됩니다. 이렇게 프로세서가 더 이상 일을 못하겠다고 비명을 지르는 경우가 몇가지 있는데, 앞에서 얘기한 div zero가 있고, 또 대표적인 것이 프로그램을 읽..

support history 2022.01.14

왜 눈물을 흘리시나요? 캐시코히어런스

어느날 전화를 받았습니다. Zynq의 PL (Programmable Logic) AXI Master를 설계해서 데이터를 DDR 메모리에 썼는데, 프로세서로 읽어보면 안읽힌다고. 얘기를 들어보니, ASIC 개발용으로 FPGA에 몇가지 로직을 설계하고 있었고, 그중 설계된 마스터가 제대로 동작하는지 알아보기 검증하던 도중, 쓴 데이터가 제대로 안읽히는 것이죠. 한 이틀 정동 고생하고 나서도 해결이 안되, 저에게 전화를 한 것입니다. 가만들어보니 DDR 메모리에 쓰는 것은 고객이 만든 마스터이고 , 읽는 것은 Zynq의 A9 프로세서로 읽는 것이니 두개의 마스터가 각각 읽고, 쓰는 상황이더군요. 하여간 만나서 상황을 보니, customer master가 메모리에 데이터를 쓰고, uboot가 A9에서 해당 메모..

support history 2022.01.08

왜 프로세서는 주소가 없죠?

몇년 전, 저희 자일링스 사무실에서 삼성 엔지니어 분들에게 MPSoC의 프로세서 서브시스템에 대해서 강의를 한적이 있습니다. 그때 강의했던 내용을 머리속에 그려가면서 나눴던 얘기를 적어보려고 합니다. 프로세서를 학교에서 많이 써 봤겠지만, 내부 구조에 대해서 자세히 몰라도 우리는 대부분의 어플리케이션을 만들 수 있습니다. 여기서 잠깐 단어들을 섞어서 썼는데, 프로세서와 프로세서 서브시스템은 좀구별하는게 좋겠습니다. 프로세서는 프로세서 그 자체입니다. 리셋이 풀리면, 정해진 리셋벡터에 저장된 어드레스에 있는 코드를 읽고, 해석, 실행합니다. 읽고, 해석하고 실행하는데 구체적인 방법들은 프로세서 구조에 따라 다르긴 하지만, 이 3가지 동작은 크게 변하지 않습니다. 프로세서 서브시스템은 프로세서와 캐시, 스누..

support history 2022.01.08

A Zynq Accelerator for Floating PointMatrix Multiplication Designed withVivado HLS, XAPP1170 (1/#)

자일링스에서 매니저 일을 하다보니 아쉬운 점이 하나둘이 아닙니다. 그래서 예전부터 꼭 알려드리고 싶었던 몇가지 기술적인 내용들을 시간나는대로 정리해서 올리겠습니다. 많은 도움 받으시기 바랍니다. 먼저 자일링스 어플리케이션 노트 XAPP1170을 살펴볼께요. 먼저 제목을 보면 A Zynq Accelerator for Floating Point Matrix Multiplication Designed with Vivado HLS, XAPP1170. 비바도 HLS를 이용해 징크에서 플로팅 포인트 행렬연산을 엑셀레이션 시키는 방법에 대한 어플리케이션 노트 입니다. 먼저 Summary를 살펴볼께요 (간단 간단 해석을 붙여볼께요) Summary This application note describes how to u..

Vitis HLS 2020.01.03