몇일전에 쓰려다 잊어버리고 못올린 글..

제목 그대로 한 두주 정도 전에 여러가지 소소한 내용을 적은 글인데, 잊고 있었습니다. 쩝..

중간 중간 끊겨서 뭘 쓰려고했던건지도 모르겠습니다만, 그냥 두기 뭐해서..

1.

AOM에서 만든 AV1의 specification(draft)이 release되었습니다. Repository로 봤을때 실제로는 아직 normative defect가 몇 개 남아있기 때문에 software가 완전히 release된 건 아니지만, 남은 문제가 대부분 high level이라 Tool은 끝났다고 볼 수 있습니다(잠시 봤는데, 글을 쓰는 시점에서 5개 남았네요).

AV1의 기반은 Google의 VP9을 experiment build(이후 VP10을 만들기 위해서 실험하던)에 Mozilla의 Daala와 Cisco의 Thor에서 좋은 점들을 고르고, 많은 회사들이 참가해서(적극적이진 않았지만 저희 회사도.. )  작업이 진행되었습니다.

 

2.

드디어 Cadence의 Genus가 합성 부분에서 Synopsys의 Design Compiler를 위협할 정도가 된것일까요? Deepchip의 내용을 따라가보면, 그동안 계속 언급되어오던 DSM 환경에서의 ICC2의 부정확성 문제를 Cadence의 Innovus가 공략하면서, 합성툴에도 영향을 끼쳤다고 봐야겠습니다.

사실 SoftIP를 하는 회사에 있다보니, 약간 느슨하게 합성하고, 마진을 더 허용해서 고객사 입장에서 조금 더 높은 주파수를 얻을 수 있도록 하는게 유리하긴 합니다 (빡빡하게 합성해서 결과를 주면, 고객사에서는 그 이상으로 해야 할테니)
이런 환경에서 예전에 SoC를 만들던 시절보다는 physical synthesis에 약간 둔감해지는 건 어쩔 수 없는 것 같습니다만, 역시 알아듣기는 해야 하니 열심히 따라가고는 있습니다. ㅎㅎ

 

 

3.

올해는 DVCON대신 DVCON china를 갈까 했었는데, 생각보다 들리는 이야기가 좋지는 않은 것 같습니다. 다른 걸 알아봐야 하겠습니다.

 

4.

RISC-V를 유심히 보고 있습니다. 사실 지켜본지는 좀 되었는데, 작년 DAC에서 RISC-V section에 참석한 이후부터 본격적으로 들여다보고 있습니다.

아마 제가 프로세서 설계를 계속하고 있었다면, RISC-V 호환 IP와 디버깅 시스템을 만드는데 집중했을 겁니다. (사실 RISC-V 페이지에 몇개 있습니다만..) 예전 프로세서 설계를 하면서 항상 고민이었던 것이 ‘개발 환경’ 이었는데, 이 부분이 어느 정도 해소 되니까요.  관심있으신 분들은 조금 신경써보시는 것도 좋을 것 같습니다. (혹시 국내에는 RISC-V에 관심 있으신 분이 없으시려나..)

 

5.

올해는 효율성을 높이는데 집중해볼 생각입니다. 이제 벌써 4월이니, 하반기 목표라 해야 할까요?

피아노 스쿨 체험담 체험기(마지막)

피아노 스쿨이란 앱(안드로이드 버전)의 체험단을 체험한지 1달 지났습니다. 아쉽게도 40대 팀장의 연말 연시여서, 체험 기간에 연말 프로젝트, 평가, 송년회 등의 화려한 일정으로 열심히 피아노를 연습하지 못했다는 점에서 정말 아쉽습니다. 마지막 리뷰를 시작해보죠.

피아노를 배우기 좋은가?

아마도 피아노 스쿨이란 앱에 관심을 가지게 되는 가장 큰 이유일 것이라 생각합니다. 피아노를 배우기 위해서죠. 도통 시간도 안나고 , 장소의 문제도 있고 해서 학원을 다니지 못하는 사람들이 관심을 가져볼 법한 앱이죠. (사실 저도 이 앱을 알게 된게 같은 이유입니다.) 그래서, 가장 기본적인 목적인 피아노 학습의 목적에 충실한 지 설명해야 할 것 같습니다.

동영상 강의

레슨은 동영상 강의로 진행된다고 보면 됩니다. 각각의 주제에 대해서 간단한 연습을 하다가 연습곡을 하나씩 진행하는 형식인데, 동영상 강의로 설명하면서 연습, 설명하고 연습하는 형태로 진행되기 때문이죠.

동영상 강의 자체는 상당히 자세히 설명하고, 건반 짚는 것도 잘 알려주시니 편하다고 생각합니다. 강의 자체로는 나쁘지 않습니다만, 차분히 단계적으로 강의가 진행된다는 점을 제외하면 다른 유투브 강의보다 경쟁력이 있을지는 잘 모르겠습니다. 그 전에 제가 보던 강의(요런거)를 보아도 그렇죠.

시스템 상으로 개선되었으면 좋겠는 부분들이 있습니다. 1) 새로운 연습이 시작되면 이전에 연주(혹은 연습)했던 부분의 음표 표시가 사라지고 다시 시작했으면 좋겠는데, 이전에 연주했던 부분이 남아 있어서 조금 귀찮습니다.  그리고, 2) 연습이 끝나면 다시 동영상으로 돌아가면 좋겠는데, 이건 다시 동영상을 켜야 합니다. 불편합니다.

반응식 악보

어떻게 보면, 피아노 스쿨의 핵심적인 기능이겠죠.

사실 미디 입력을 악보에 표시하는 것은, 대부분의 씨퀀스 프로그램이나 미디를 지원하는 프로그램에서는 모두 지원하는 기능입니다만, 오선상에 정확한 시점에 정확한 입력을 하지 않는 경우 넘어가지 않도록 하는 것은 게임적인 요소를 도입한 것이라 봐야곘죠. 특히 정확하지 않은 음표를 입력한 경우 붉은 색으로 표시해주고, 더이상 진행이 되지 않죠.

이 기능 덕분에 타건이 잘못되는 경우에 금방 수정할 수 있다는 점이 가장 큰 장점입니다. 리듬 게임에 익숙하신 분들은 게임하는 감각으로 익숙해질 수 있을 것이라 생각합니다.

 

피아노 초보를 위해서 좋은 도구

이외에 건반을 보여주는 기능 등을 이용해서 건반을 어떻게 눌러야 하는지 직관적으로 알수 있는 것들도 좋게 평가할 수 있습니다. 모두 이전에 적은 장점들이죠. 피아노를 처음 접하시는 분들에게는 충분히 어필할 수 있는 기능이라 생각합니다.

단점은?

시스템적인 단점(저는 버그라고 보는데..)들이 몇가지 있지만, 그건 이전 리뷰에서 이야기했기 때문에 따로 언급할 필요는 없어보입니다. 여기서는 버그말고, 학습도구로의 단점을 이야기해 보겠습니다.

다만, 뭔가를 배운다는 것은 좋은 도구만으로 되는 건 아니라고 생각합니다. 왠지 책을 많이 사면 공부를 잘할 것 같지만, 실제는 책을 읽지 않으면 안되는 것 같은거죠.

마찬가지로, 학습 관련 앱이라면 연습을 지속할 수 있도록 만드는 동기를 만드는 것이 아주 중요하다고 봅니다. 학원의 경우에는 가는 것만으로 동기가 발생하지만, 접근성이 좋은 앱은 다른 방식의 접근이 필요하겠죠. 즉, 앱에서 성취 욕구를 만족시켜줄만한 요소가 있어야 한다고 생각합니다. 그런데, 이 앱에는 성취 욕구를 만족시켜 줄만한 요소가 존재하지는 않습니다. 예를 들어 예전에 인기를 끌었던 행복한 피아니스트(이젠 없는 게임이죠) 같은 걸 보면, 레벨이나 경쟁 요소를 도입해서 계속해서 연주를 하게 만듭니다. (물론 이건 게임입니다.)  하지만, 피아노 스쿨에는 그런 요소는 없죠. 게임이 아니니 관계없다고 생각하기에는 앱의 특성에 대한 이해가 부족하다고 봅니다.

특히 앱에서 강조하는 많은 요소가 실제로는 초보자를 위한 요소들이라, 피아노를 어느정도 익혀서 초견에 큰 문제가 없는 사람들에게는 위의 기능이 별로 매력적이지 않을 것 같이므로, 연주곡에 대한 경쟁 요소로 연습을 지속할 수 있도록 하는게 더 중요할 것 같습니다.

다른 한가지를 꼽자면 앱의 이용가격이 비교적  고가라는 점입니다. 저의 경우는 체험단이라 1개월 프리패스를 사용할 수 있었습니다만, 12개월 396.000원, 한달에 33,000원이라는 가격은 저렴하다고 보기는 어렵습니다. (제가 사용하는 동영상 서비스들인 넷플릭스, 와차 플레이, NBA 리그패스 가격을 더한것보다 비싸네요. ^^; )  이 정도 가격이면, 하나씩 교정을 받을 수 있는 학원보다 경쟁력이 가질 수 있을지 잘 모르겠습니다.

마무리로..

단점으로 지적한 것들은 기술적으로 어렵지 않게 보완 가능할 것이라 생각합니다. 초보자에게 도움이 되는 기능들의 장점도 명확하다고 생각하고요. 일정 부분이 지났을때도 매력적일 수 있도록 변경되면 더 좋은 앱이 될 것으로 생각하고, 기대됩니다.

그래서, 이런 분들께는 강력히 추천하고 싶습니다.

  • 집에 디지털 피아노가 있으나 제대로 활용하지 못하고 있다.
  • 초견/독보가 불가능한 초보자다.
  • 피아노를 배우고자 하는 강한 의지가 있다.
  • (옵션으로) 안드로이드 패드가 있다.

 

체험단 체험에 대해서도 간략히 적겠습니다.

사실 몇번 체험단을 한 적이 있습니다만, 이 정도로 본격적(?)인 가이드가 있었던 체험단은 이번이 처음이어서 색다른 경험이었습니다. (몇일, 몇일에 어떤 주제로 어떤 형식으로.. 해달라는 부탁이 있었습니다만, 저는 그런거 별로 신경안쓰고 지킬 수 있는 부분만 지켰습니다. – 우수 체험단 같은건 바라지 않거든요..) 예전에 체험단을 할때는 그냥 편하게 사용하고, 장점이든 단점이든 포스팅 하나만 해달라 것이나, 별다른 조건이 붙이 않는 것이 대부분이었어서 특이하고 재미있었습니다. 처음에 쓴 것처럼 연말/연시만 아니면 더 잘 이용했을 수 있었을텐데.. 아쉽네요..

기회를 준 피아노 스쿨 분들께도 감사합니다. 🙂 고생하셨어요~

 

오늘 카톡으로 온 공지(?)도 같이 적습니다. 2차 체험단 모집한답니다. 관심있으신 분은 지원해보세요. 제 리뷰에서 보셨을 것처럼 상당히 “쓸만한” 앱입니다!

체험단 공고 보러가기

 

‘본 체험 후기는 피아노스쿨 체험단에 선정되어 작성한 무료로 체험한 솔직한 후기입니다’

Parallelized Logic Simulation

얼마전부터 parallel simulation이 큰 이슈가 되었습니다. 몇몇 기사에서는 3세대 simulation 기법이라고 이야기하더군요.

Verilog-XL 처럼 interpreter 형태를 1세대로, 2 세대를 finesim, VCS, NCVerilog 처럼 compiled 형태를 2세대로, 그리고, 다수의 processor를 동시에 쓰는 형태를 3세대로 이야기하는 거죠.

그간 simulation에서 multicore를 사용하는 건 별로 없었죠.  정확히는 wave dump나 assertion/coverage check 같은 걸 병렬로 하는 건 있었지만, simulation core 자체를 multicore로 하는게 별로 없었던 거죠.

제 기억에 남는 건 DAC13의 must see list에 있었던 rocketsim이 처음이었던 것 같습니다. GPU를 사용해서 VCS와 같이 사용했을때 gate level simualtion을 대략 23배 빠르게 해준다는 이야기때문이었죠.

그러다가 조금 조용해졌었는데, Best EDA Tool 2016 #3에 뽑혔을때 조금 더 많은 이야기를 접할 수 있었고, 작년 DVCON2017에서는 Cadence의 Xcelium(Rocketsim을 인수한 다음 이름을 바꾼 거죠.)과 Synopsys의 VCS FGP(위 link의 Cheetah VCS가 이름을 바꾼 겁니다.)가 본격적으로 마케팅하는 것을 볼 수 있었습니다. 이전에 DVCON2017에 대해서 적은 글에도 간략하게 적었습니다만, 두 툴간에 신경전(서로 은근히 까는?)도 있었고요.

Xcelium의 경우 GPU기반에서 출발해서 Multi-core 형태로 발전한 상태였고, 배경에는 simulation의 경우 단순한 연산보다 복잡한 연산이 많아서 GPU보다 processor core를 병렬적으로 사용하는게 좋더라.. 는 담당 엔지니어의 설명이 있었습니다.

사실 VCS FGP에 대해서는 비교적 잘 모르던 상태에서 들었는데, VCS 사용자의 경우 “무료”로 사용할 수 있을 것이고 곧 사용할 수 있을 것이다. 라는 부분이 흥미를 끌었죠. 내부적으로 VCS만 사용하고 있어서 말입니다.

다만, 두 툴 모두 RTL sim 보다는 Gate level sim에서 성능 향상이 크며, RTL sim의 경우는 설계에 따라 큰 차이가 있다… 를 깔고 들어갔고, Xcelium의 경우 3~4배까지는 된다고 이야기했던 반면, 당시 VCS FGP는 설계에 따라 2배 정도는 된다는 이야기를 해서 아주 큰 기대는 하지 않고 있었습니다. 보통 이렇게 이야기하면 생각보다 훨씬 안좋은 경우가 많으니까요.

결론적으로 말하자면, Parallel Simulation 쓰라는 이야기를 하고 싶습니다. 설계에 따라 다를테니 뭐가 좋다고 이야기하기 쉽지 않겠지만, core를 3~4개 정도를 사용하는 수준은 분명히 좋아집니다.

제가 테스트해본 설계에서는 main processor 이외에 3개 정도 core를 더 쓰면 대략 2배 정도 빨라지는 결과를 얻었는데, 4개 정도를 넘어가면 core를 더 사용한다고 더 좋아지지는 않았습니다. 아마도 설계에서 얻을 수 있는 병렬성이 이 정도겠죠.

곁다리로, 요즘에 새로운 프로세서들을 사용할 기회가 있어서 같이 테스트 했는데요. 요건 뭐에 걸릴일은 없을테니..

제가 기존에 쓰던 I7-3770K에서의 simulation  time을 100%라고 했을때, 상대 수행 시간입니다. (아래는 parallel simulation이 아닙니다.) 보시면, 적어도 VCS에 있어서는 intel의 8세대 CPU들이 훨씬 빠릅니다. 같은 세대인 Ryzen Threadripper 1950x와 비교해보면 말이죠. (물론, Threadripper의 경우 multicore에 힘을 실은 프로세서죠.). 사실 parallel로 비교해도 16 core짜리 threadripper보다 6core짜리 i7-8700K가 더빠릅니다. 🙂

rel. perf.
i7-3770K 100%
Ryzen 1950X 85%
i5-8400 68%
i7-8700K 52%

Zen+ Archtiecture는 이미 설계가 끝나서 출시 예정이고, Zen2 architecture 기반의 CPU들이 올해 나온다니, 그때는 single thread performance가 얼마나 비교가 될지 궁금하긴 하네요. (사실 meltdown bug 때문에 intel cpu performance가 떨어지긴 하겠습니다만,  그래도 위의 격차를 채우긴 쉽지 않을 것입니다. ) 잡설입니다만, 제 생각에 TLB에 PCIDs를 적용하고 있는 최신 processor들의 경우 약간의 트릭으로 이 버그를 피해나갈 수 있지 않을까 싶은 생각이 드는데요..  프로그램 컴파일을 다시 요구할 수 있는 embedded라면 compiler workaround로 피할 수 있을 것 같은데(예전에 요런 짓을 많이 해봐서..), PC/workstation용으로는 이게 불가능하니 대신 뭔가 해야겠죠? 안그래도 CES에서 비슷한 이야기가 나온 걸로 봐서는 뭐가 있겠죠.

원래 내용으로 돌아와서, simulation이 목적이라면 아직은 intel CPU를 사용하시라는 점. 할 수 있으면 parallel simulation을 사용하시라는 것. 이 두 가지만 기억하시면 되겠습니다. 🙂