Jong Hyun Park

About

현재는 프리랜서로 활동하고 있습니다.
주로 AI (딥러닝, GenAI) 관련 강의, 개발, 컨설팅을 하고 있습니다.
새로운 시도와 직접 구현하는 것을 좋아합니다.
비즈니스 문의: park.jonghyun@yonsei.ac.kr

짧은 이력

  • 경기과고, 연새대학교 전기전자공학과 학부&박사수료, 삼성전자 산학장학생
  • TmaxOS, Infomagix 에서 Firmware, Linux, Flask, Flutter, Tensorflow, Pytorch 관련 개발을 해오고 있습니다.
  • 현재는 삼성전자, 서울대학교 외 여러 기관에서 파이썬 & 딥러닝(생성형AI) 관련 강의, 자문을 하고 있습니다.

이야기

내용이 너무 길 수도 있으니, 자세한 이력이 궁금하신 분들은 아래 긴 이력 섹션으로 가시는 것을 추천 드립니다.

안녕하세요, 제 소개를 이야기 형식으로 하고자 합니다.
직접 경험하면서 배운 점들, 특히 많은 고민의 흔적들이 짧은 경력 소개에 담기지 않는 것이 안타까워 기록을 남깁니다.
채용을 직접 해보니 "어느 회사에서 몇 년 경력" 이런 것보다 "고민의 흔적, 의사 결정의 순간, 치열했던 노력" 들이 궁금하더라고요.


2008 ~ 2013 - 경기과고 / 연세대학교

고등학생 ~ 대학생 시절에는 별 생각 없이 남들이 하는 대로 공부했습니다. 공부는 나쁘지 않게 했는데, 돌이켜보면 그 시간들이 너무 아깝다는 생각이 드네요. 그 때 쌓았던 지식들이 지금 물론 도움이 많이 되고 있지만, 큰 목표를 가지고 도전하는 삶을 일찍 시작하지 못했다는 것이 아쉽습니다.

그래도, 대학교 4학년 때 참가했던 Korea Supercomputing Challenge 2013 (archvied link) 가 기억에 많이 남습니다. 제 첫 자발적인 도전이었습니다.
한국의 슈퍼컴퓨터에서 여러 Task 들을 최대한 빠르게 돌리는 대회였는데, 운이 좋게도 2등을 해서 UNIST 총장상을 수여했습니다. 당시의 저는 전기전자공학과 학생으로 코딩 스킬이 거의 전무했었는데, 컴퓨터 구조 수업에서 배운 branch prediction 과 cache 동작 원리에 알맞은 코드를 작성 했더니 2등을 했습니다. 1년만 공부를 더 했더라면, SIMD asm 코드를 활용해서 1등 할 수 있었을 텐데 라는 아쉬움이 남습니다. 팀 이름이 "하이머딩거" 인 게 부끄럽네요.

IMG_9299-1

2014 ~ 2016 연세대학교 ESCAL & 삼성전자 산학장학생

대학원 생활을 했습니다. 많이 힘들었는데, 그만큼 배운 것도 많았고, 지금도 도움이 많이 되고 있습니다. 제 전공은 Microarchitecture, 쉽게 말하면 하드웨어 설계이고, 그 중에서도 GPGPU 를 했습니다. 이 블로그를 시작한 것도 대학원생 때 공부를 하면서 기록을 남기려고 시작을 했었습니다.

전공에 대해 조금 더 자세히 이야기 하고자 합니다. 이것이 제가 딥러닝을 시작한 계기거든요. 당시에 GPU 는 General Purpose 라는 개념을 도입하여서 게임이 아닌 일반적인 작업을 수행하고자 하는 노력을 하고 있었습니다. NVIDIA 는 CUDA 라는 플랫폼을 만들어서 배포를 하고 있었고, 저도 이 GPGPU 를 위한 하드웨어 설계를 연구했습니다. 이 와중에 AlexNet 을 시작으로 딥러닝 알고리즘이 세상에 나오고, 큰 주목을 받았습니다. 마침 이 딥러닝 알고리즘의 연산 구조는 GPU 에 매우 적합했고, NVIDIA 는 이 시장을 장악하려고 노력했죠. 결과는 지금의 NVIDIA 시가총액이 말해주듯 대성공을 했습니다. 애초에 AlexNet 이 CUDA 로 만들어졌습니다.
그래서, 저도 딥러닝을 공부하기 시작했습니다. 처음 목표는 이에 맞는 하드웨어를 잘 설계하기 위해 공부를 시작한 것이죠. 운이 좋게도 딥러닝 시장의 초기 참여자로 들어가게 되어 지금까지도 덕을 보고 있네요.

연구도 하고, 논문도 쓰고 했지만, 기억에 남는 것은 기업과 진행했던 과제들 입니다. 마이크로소프트, 삼성전자, 엘지전자와 과제를 진행을 했었는데, 그 중에서도 삼성전자와 진행했던 NPU 과제가 가장 기억에 남습니다. 딥러닝 알고리즘을 효율적으로 돌리기 위한 하드웨어 설계 관련 과제였고, 지금도 논의가 활발히 되고 있는 "몇 bit 를 사용하는 것이 좋을까" 에 대해서도 고민을 했습니다. 당시에는 삼성전자의 산학장학생이었는데, 졸업을 하면 그 쪽 부서에 입사하기로 배치되어 있던 상황이라 더 기억에 남네요. 실제로 그때 연구했던 것들이 엑시노스의 NPU 설계에 일부 반영되었다고 전해들었습니다.

2017~2019 TmaxOS & 패스트캠퍼스 강사

석박사 통합과정을 진행하다가 박사수료 후, 전문연구요원으로 병역 이행을 위해 TmaxOS 로 입사했습니다. TmaxOS 에서는 그래픽 엔진과 Linux/Windows 호환 플랫폼을 주로 개발 했습니다. 당시에 연구실 선배가 먼저 전문연 복무 중이었어서 따라갔는데, 지금 돌이켜보면 참 운이 좋았습니다.
소프트웨어 개발을 처음 시작 했고, 적성에 잘 맞는다고 판단되어서 이 때 하드웨어에서 소프트웨어로 완전 전향을 하게 되었습니다.
기억에 남는 일로는 리눅스 커널에 처음으로 기여했던 것이 있습니다. Linux 에서 Windows 앱을 돌리려고 약간 특이한 코드 (inline asm으로 register를 제어하는 일) 를 수행하고 있었는데, 이것이 특정 환경에서 죽더군요. Linux Kernel 이 죽기 때문에 그냥 컴퓨터가 무조건 꺼졌습니다. 마이크로소프트의 비공개 코드와 얽혀서 돌아가는 코드라 제가 직접 수정을 하지는 못했지만, 해당 문제가 발생 한 코드의 원인을 찾고 그 분 (? 마이크로소프트 사람) 에게 문제가 있다고 연락하니까 리포터로 등록을 해주면서 커널 코드를 수정하시더군요.

linux_patch_mail

동시에 퇴근 후 아르바이트로 딥러닝&리눅스 관련 강의를 패스트캠퍼스에서 시작 했습니다. 대학원 때 기록했었던 본 블로그의 글을 통해 강의 요청이 왔는데, 강의라는 것을 처음 해보았고 재밌게 잘 했습니다. 전문연 복무 중 겸업에 대해 걱정을 했는데 의외로 명확하게 퇴근 후에는 허용된다고 써있더군요.
이 외에도 다양한 루트로 연락이 와서 SK Hynix 에서도 GPGPU 관련해서 전문가 초빙 강연을 했었고, 서울대학교에서도 딥러닝 관련 자문을 진행했습니다.

이 기간에 저는 소프트웨어&딥러닝 분야로 전향을 해야겠다는 결심을 세웠고, 휴학 중이던 박사과정을 더 이상 이어 가지 않기로 결정했습니다. 덕분에 이미 수령한 삼성전자의 산학장학금을 모두 갚았네요.

2020~ 인포매직스

3년간의 전문연을 마치고 인포매직스에 연구/개발자로 일을 하고 있습니다. 자세히 밝힐 수는 없지만 제가 특수관계인인 회사입니다. 주로 현대자동차 남양연구소의 의뢰를 받아서 연구에 필요한 여러 하드웨어/소프트웨어를 만들고, 시험/연구를 진행합니다.
저는 주로 자동차의 소음/진동을 측정하고 분석하고 결과를 알려주는 시스템을 만들었는데, 작은 회사다 보니 회로 단계부터 FPGA, 펌웨어, 백엔드, 프론트엔드 까지 직접 다 만들었네요. 수년동안 지속적으로 의뢰를 받아 시스템을 만들었는데, 결국엔 자동차에서 직접 측정한 데이터를 딥러닝 모델을 통해 분석해 결과까지 바로 보여주는 시스템을 만들었습니다. 혼자 (+조금의 도움) 만들다 보니 시스템 제작부터, 데이터 측정/모델 학습 까지 꽤 오래 걸렸는데, 앞으로는 뭐든 다 혼자서 할 수 있겠다는 생각이 드네요.

nvds_sum

STM32, Arduino, Labview, C, Flask, Flutter, Tensorflow 까지 필요에 맞게 골고루 다 익히게 되었습니다. 이전에는 문제를 해결하기 위한 방안에 선택권에 자유도가 제한이 있었습니다. 아무래도 조직이다보니, 협업도 고려 해야하니까요. 그런데, 혼자서 프레임워크 선택부터, 구조 설계, 하드웨어 선정 모두 진행하다보니 생각보다 의사 결정에 있어서 배우는 것이 많더군요. 게다가 고객을 직접 상대하고, 계약도 직접 하다보니, 소통/영업/설득 많은 부분에 있어서 배운 것이 많았습니다. 특히 불편한 이야기들을 해야만 하는 순간들이 많은데, 이런 부분은 아직도 많이 배우고 있습니다.

2023~ 파이썬/딥러닝 강사 (삼성전자, 서울대학교, 기타)

과거에 강의를 했던 패스트캠퍼스에서 연락이 왔습니다. 삼성전자의 Citizen Developer 과정에 강사분들이 필요한데, 혹시 하지 않으시겠냐고요. 여러모로 상황과 조건이 맞아서 2023년4월부터 진행을 하고 있습니다. 강의는 Python 데이터 전처리, Python 데이터 분석, 딥러닝 이해와 구현 이렇게 3과목을 진행을 하고 있습니다. 아무래도 삼성전자에 친구, 선후배들이 재직을 하고 있다 보니 지인들을 만나기도 하고 재밌게 강의를 잘 하고 있습니다. 소프트웨어 직군이 아닌 DS 연구원분들을 대상으로 진행하는데, 현장에서 딥러닝 (요즘엔 특히 GenAI) 을 어떻게 잘 적용할 수 있을까에 대해 다방면으로 소통을 하다보니 저도 생각보다 배우는 것이 많고 좋습니다. 특히 GenAI 분야는 요즈음 매일매일 새로운 것들이 나오기 때문에 저도 강의를 매번 준비하며 최신 트렌드를 놓치지 않게 되어서 더 뿌듯하기도 합니다. OpenAI 에서 쿠데타가 일어날 때에도 강의를 진행하고 있었는데, 매일 강의를 하면서 새로운 소식이 나와서 재밌었네요.
삼성전자 외에도 현대자동차, 서울대학교 등 여러 기관에서 꾸준히 강의를 하고 있습니다. 강의를 하다보니 불규칙적으로 시간이 조금씩 생기는데, 남는 시간에는 재미있어 보이는 것들을 시도합니다. 최근에는 비전프로 앱을 만들어보기도 했고, 캐글 대회에도 관심이 있습니다.

긴 이력

Education

  • 경기과학고등학교
  • Yonsei University: Seoul, Korea
    B.S. in Electric and Electrical Engineering – February 2011.
  • Yonsei University, Embedded Systems and Computer Architecture Lab: Candidate of Philosophy - February 2017.

Technical Experience

  • 삼성전자 산학장학생 (2015.01 - 2017.01)
  • TmaxOS 연구원 (2017.02 - 2020.04)
    • Windows Compatible Framework
    • 2D Graphics Framework
  • Fastcampus 오프라인 강의 강사
    • 딥러닝을 위한 리눅스와 GPU Camp
  • SK Hynix 전문가 초빙 과정 강사
    • GPGPU를 이용한 최적화 기법
  • 서울대학교 인공위성지구물리 연구실 자문
    • 위성데이터 딥러닝 프로그램 개발 자문
  • Linux Bug Reporter
  • Infomagix Software, Firmware Engineer (2020.05 ~ )
    • Frontend - Flutter
    • Backend - Flask, firebase, auth0
    • Firmware - C, Labview, STM32, Arduino
    • Projects - NVDS, MMS
  • 삼성전자 Citizen Developer 강사 (2023.04 ~ )
    • Python 데이터 전처리
    • Python 데이터 분석 및 시각화
    • 딥러닝 이해와 구현

Awards

Publication

2019
  • "Adaptive Cooperation of Prefetching and Warp Scheduling on GPUs"
    Yunho Oh, Keunsoo Kim, Myung Kuk Yoon, Jong Hyun Park, Yongjun Park, Murali Annavaram, and Won Woo Ro
    IEEE Transactions on Computers, Vol. 68, No. 4, pp. 609-616, Apr. 2019 (IF: 3.052, Q1, JCR2017)
2018
  • "WASP: Selective Data Prefetching with Monitoring Runtime Warp Progress on GPUs"
    Yunho Oh, Myung Kuk Yoon, Jong Hyun Park, Yongjun Park, and Won Woo Ro
    IEEE Transactions on Computers, Vol. 67, No. 9, pp. 1366-1373, Sep. 2018 (IF: 3.052, Q1, JCR2017)
2016
  • "APRES: Improving Cache Efficiency by Exploiting Load Characteristics on GPUs"
    Yunho Oh, Keunsoo Kim, Myung Kuk Yoon, Jong Hyun Park, Yongjun Park, Won Woo Ro, and Murali Annavaram.
    The 43rd ACM/IEEE International Symposium on Computer Architecture (ISCA 2016)
  • "Accelerating Forwarding Computation of ANN using CUDA"
    Jong Hyun Park, and Won Woo Ro
    The 15th International Conference on Electronics, Information and Communication (ICEIC 2016)
  • "신뢰 실행 환경을 위한 저장장치 보안 강화"
    박종현, 노원우
    2016 SoC 학술대회
  • "Code Instrumentation를 이용한 딥러닝 워크로드 분석"
    권상헌, 박종현, 노원우
    2016 대한전자공학회 하계종합학술대회
  • "인공신경망 연산을 위한 하드웨어 가속기 최신 연구 동향"
    박종현, 김민식, 김윤수, 이경민, 윤명국, 노원우
    정보과학회지 제34권 제9호
2015
  • "Improving Pipeline Utilization with Two-Level Instruction Issue on GPUs"
    Yunho Oh, Jong Hyun Park, and Won Woo Ro
    The 30th International Techinical Conference on Circuits/Systems, Computers and Communicaions (ITC-CSCC 2015)
  • "Accelerating ELMs on the GPU Toward Real-Time Training on Large Scale Data Sets"
    Han Kyul Kim, Jong Hyun Park, and Won Woo Ro
    The 30th International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC 2015)
  • "GPU를 위한 프로파일링 기반 페이스 예측 및 적응형 워프 스케줄러" (우수발표논문)
    박종현, 윤명국, 김민수, 노원우
    대한전자공학회 추계학술대회 2015
2014
  • "매니코어 GPU 구조의 성능 저하 요소 분석과 최신 연구 동향"
    오윤호, 윤명국, 박종현, 노원우
    정보과학회지 제 32권 제5호

  • "다중 코어 환경에서의 Back-end Fusion 구현"
    박종현, 정이품, 노원우
    한국정보처리학회 춘계학술발표대회 2014

Projects at University

  • 차세대 모바일 인텔리전스를 위한 HW 구조 및 IP 개발, Samsung Electronics, 2016
  • Development of Application Program Optimization Tools for High Performance Computing Systems, IITP, 2016
  • GPU Architectures for Unstructured and Irregular Parallel Programs, NRF, 2016
  • Development of a Real-Time Automatic Survey Tool for SNS Big Data, Microsoft & IITP, 2015
  • Development of Low-Power Mobile Computing Platform, LG Electronics, 2014
  • Development of DSP Accelerating Technique for Image Analysis, Samsung Electronics, 2014