개발 편의성을 위한 소소한 Tips/04 질의 응답 정리

HW 엔지니어가 알아두면 좋을 소소한 알쓸신잡

반응형

안녕하세요. 설계독학맛비입니다.

최근에 이것저것? 인터넷을 끄적이다가, Hardware Engineer 가 알아두면 좋은 내용들이 있어서 소개해 드립니다.

 

첫번째 이야기!! 이중 for 문에서 memory index 접근 방법에 따른 Performance 차이. (시간복잡도)

블라인드 앱에서 본 글인데요. 여러분들 맞출 수 있나요? (저도 어버버 할듯... ㅎㅎ)

Q. 원문=============

인터뷰 보는데.. 시건복잡도 문제를 수기로 작성해주고 어떤게 더 빠른지 말해달라고 했었는데…

1. 이중 for문 (i -> j 순서) > sum += arr[i][j]

2. 이중 for문 (j -> i 순서) > sum += arr[i][j]

어떤게 더 빠른지 말하라고 했는데.. 혼이 씌었는지 1번이 더 빠르다고 했넹…..

기초도 모르는 나란 자식… 흑…. ===================

A. 캐시 히트에 따라 다르다. 대체로 최하위 차원부터 반복을 시작하면 캐시히트 확률이 높다.

위 질문에서는 이유와 함께 2번을 선택해야겠죠? 그리고 돌려봐야 정확하게 알 수 있다. 도 함께. 

https://frogred8.github.io/docs/014_cache_line/

 

두번째 이야기!! 1.1 + 0.1 !== 1.2 이다 !!!! (두둥....?!)

왜.. 일반 CPU 에서는 1.1 + 0.1 이 1.2 가 아닌지 이해할 수 있는영상입니다.

"수 표현 방법"과 그에따른 "오차(error)"발생을 알고계시면 언젠가? 도움이 되실꺼에요.

https://youtu.be/-GsrYvZoAdA

그럼 즐공하세요 :)

 

댓글을 보다보니, 좋은 질문 + 답변 이여서 발췌 

 

 

ps. 혹시나.. 이거 HW 설계엔지니어 면접에 이런 질문 안해요...

(그런데 두번째꺼는 물어보고 싶긴하네요;;; 중요한내용이긴하니까요.)

반응형