projects
open research projects of AISA
Target Applications
효율적인 시스템을 설계하는 엔지니어들은 먼저 그 위에서 구동할 서비스, 환경, 프로그램(Target Application) 을 정해야 합니다. AISA에서는 현재 아래와 같은 AI 응용 및 환경에 집중하여 성능적인 병목구간(혹은 Critical Path)을 분석 및 최적화하는 연구를 진행합니다.
- Agentic AI (Small/Large Language Models, Reasoning, Test-time Scaling, etc.) [1]
- AI-based Robotics Extension (Vision-Language Models, Depth Estimation, etc.) [2],
- Graph Analytics (Approximated Nearest Neighbor Search, Graph Neural Network, etc.) [3]
- Conventional AI Models (Transformer, Convolutional Neural Networks, etc.) [4]
- Emerging Dynamic Neural Networks (Speculative Decoding, Early Exit, Mixture-of-Experts, etc.) [5]
- Dynamically Compiled AI Models (e.g.,
torch.compile) (missing reference)}
- Dynamically Compiled AI Models (e.g.,
저희는 AI 알고리즘을 직접 설계하지는 않지만, 논문과 코드를 분석하여 그 특성을 깊이 이해하고, 효율적으로 개선하는 방법을 찾습니다. 이를 위해서 시스템 구조를 구성하는 소프트웨어 및 하드웨어 전반에 대한 구조를 폭넓게 공부하고, 관련된 분석도구나 수학적 모델링, 디버깅 도구에 대한 지식을 익힙니다.
하지만, 언제나 하나의 Target Application만을 위해 최적화할 수 있으면 좋겠지만, 어느정도의 시스템 범용성 또한 생각해둬야하기 때문에 여러 응용들 간에 공통적으로 성능에 중요한 명령어 세트나 실행/연산 패턴을 찾아내고 그것을 집중 최적화하기도 합니다.
관련교과목 및 스킬
- Course: Mathematics for Machine Learning / Deep Learning System / Introduction to Data structure and Algorithm
- Programming: Linux, Python, PyTorch, ROS
- Advanced Theory: DNN Basics, Transformer, Graph Algorithm
References
System-level Optimization (HW & SW Co-design)
AISA Research Group은 현재 위 프로그램들을 목표로 소프트웨어 및 하드웨어 최적화 및 성능 개선과 관련된 연구를 합니다. 이러한 서비스들은 IoT, mobile, edge server 및 datacenter 등 다양한 하드웨어 플랫폼 위에서 운용되고, 따라서 다양한 시스템 소프트웨어 및 하드웨어 구조에 대한 배경지식을 필요로 합니다. 구체적으로, AISA에서는 현재 아래 세 가지 세부주제에 대한 연구를 진행 중입니다.
- Computer Architecture and Algorithm for Acceleration (ISA Extension, Performance Modeling) [6], [7], [8], [9]
- System Software Optimization (DNN Compiler, Runtime, Scheduler) [10], [11], [12], [13]
- Light-weight Performance Estimation and Simulation (Analytical/Hybrid Modeling, AI-based Estimation) [10], [11]
하지만, 일반적으로는 Target Application을 특정했을 때, 시스템의 병목구간을 분석하고, 아키텍처 및 코드를 재설계하여 아래와 같은 방법론을 적용해봅니다.
- 연산의 근사 혹은 전체적인 실행을 경량화 (Approximation, Quantization, Operator/Kernel Fusion)
- 최적의 효율을 달성하기 위해 실행 순서를 탐색 (Scheduling)
- 병렬화 등을 통해 실행시간을 최소화 (Parallelization)
- 하드웨어를 통해 가속(Hardware Specialization, Customiation)
위의 주제들은 모두 “구체적 시나리오에서 컴퓨터 시스템을 어떻게 효율적으로 설계할 것인가?”에 대한 질문들 입니다.
하지만, 모든 연구는 다양한 가능성이 열려있는(혹은 가정하기 나름인) 문제들이 많기 때문에 이를 구체화시키고 실제로 성공적인 아이디어를 발굴 및 구현하는 어떤 일반적인 방법이 있지는 않습니다. 그렇기 때문에 더더욱 내가 목표로 하는 프로그램의 사용 환경과 알고리즘 등등 구체적인 상황과 솔루션을 치열하게, 끈임없이 (같이) 논의합니다.
관련교과목 및 스킬
- Course: Computer System Programming / Operating System / Computer Architecture / Embedded System Design
- Programming: Linux (Ubuntu), Python, C/C++, Verilog, Chisel
- Advanced Theory: x86/RISC-V Assembly, Compiler, Network, C/C++ Debugging Experiences, Hardware
관련 개발보드 및 컴퓨터
- NVIDIA Jetson AGX Orin (Embedded GPU Dev. Board - Robotics, Automobile, Edge Server, etc.)
- NVIDIA Jetson Nano (IoT GPU Dev. Board - Tiny Robots, Sensors, etc.)
- High-end CPU Server w/ NVIDIA RTX 3090 (Consumer GPU)
- Alveo U280 for RISC-V CPU + NPU (Open-source Gemmini) Simulation
References
- The 26th IEEE International Symposium on High Performance Computer Architecture, 2020.
- The 22nd ACM Architectural Support for Programming Languages and Operating Systems, 2017.
- IEEE Design & Test: Special Issues on Approximate Computing, 2016.
- IEEE MICRO: Special Issue on Top Picks from the 2020 Computer Architecture Conferences, 2021.
- IEICE Transactions on Information and Systems, 2022.
- The 27th IEEE International Symposium on High Performance Computer Architecture, 2021.
- The Web Conference, 2025.
- The 27th IEEE International Conference on Parallel Architectures and Compilation Techniques, 2018.