분류 전체보기 (127) 썸네일형 리스트형 CUDA, Driver, Graph, Eager 실행은 각각 무엇이며 vLLM 성능과 어떤 관계가 있을까? vLLM이나 PyTorch 기반 LLM 서빙을 다루다 보면 다음과 같은 용어를 자주 접하게 된다.CUDACUDA DriverCUDA Grapheager execution이 개념들은 서로 다른 레이어에 속해 있지만, LLM 추론 성능과 지연(latency) 특성을 이해하는 데 핵심적인 역할을 한다.본 글에서는 “CPU에서 GPU까지 실제로 어떤 일이 벌어지는지”를 기준으로 이 개념들을 정리하고, vLLM에서 eager / CUDA Graph가 왜 성능 차이를 만들어내는지 설명한다.1. CUDA란 무엇인가?1.1 정의CUDA는 NVIDIA GPU를 범용 계산 장치로 사용하기 위한 소프트웨어 플랫폼 전체를 의미한다.단순히 하나의 라이브러리가 아니라,GPU 메모리 관리커널(kernel) 실행스트림/동기화연산 스.. vLLM에서 CUDA Graph란 무엇이고, 왜 어떤 순간에 갑자기 느려질까? 대규모 언어 모델(LLM)을 서빙하면서 vLLM을 사용하다 보면 이런 경험을 하게 된다.“평소에는 응답이 빠른데, 가끔 특정 요청에서만 갑자기 느려진다”“eager 옵션을 끄면 평균 속도는 빨라지는데, 간헐적인 latency spike가 생긴다”이 현상의 핵심 원인은 대부분 CUDA Graph와 shape/배치 변화에 있다.이 글에서는 다음 내용을 중심으로 정리한다.CUDA Graph가 정확히 무엇인지eager 실행과 CUDA Graph 실행의 차이shape/배치가 바뀌면 왜 느려지는지vLLM에서 CUDA Graph 재사용/미스를 어떻게 확인하는지실전에서 재사용률을 높이는 요청 설계 방법에이전트 환경에서 eager + graph를 혼합 운영하는 전략1. CUDA Graph란 무엇인가?1-1. 한 줄 정의.. 구간 합 구간 합은 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘입니다. 코딩 테스트에서 사용빈도가 높습니다. 기존의 배열에서 합배열을 하나 더 만들어 사용한다.S[i] = A[0] + A[1] + ... + A[ i -1 ] + A[i] 백준 11659번 : 구간 합 구하기 4import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] input = br.. S3 spring boot와 연결해 이미지 관리하기 이미지를 올리는 방법은 크게 2가지가 있다. 1. MultipartFile을 사용한 기존 S3 파일 업로드Spring Boot에서 S3 파일 업로드를 구현할 때 가장 많이 사용하는 방법이 MultipartFile을 사용하는 방법이다.MultipartFile은 스프링에서 제공하는 인터페이스로, 파일 업로드를 손쉽게 다룰 수 있도록 기능을 제공한다.클라이언트에서 파일을 업로드했을 때 WAS가 임시 디렉토리에 파일을 저장한다.파일은 컨테이너가 실행되고 있는 서버 디스크에 저장되고, 요청 처리가 끝나면 임시 저장된 파일은 삭제된다.MultipartFile 방식은 다수의 사용자로부터 동시에 요청이 들어올 경우, 서버의 스레드가 빠르게 소진될 수 있다는 문제가 있다. 2. Presigned URL을 사용한 S3 파.. 스프링 시큐리티 스프링 부트는 톰캣 서블릿컨테이너 위에 있는데 컨테이너가 요청을 받아서 필터를 거쳐 spring boot 에 요청이 들어가게된다 config파일이 필터를 만들어 클라이언트의 요청을 가로챈다. 해당 클라이언트가 어떤 권한이 있는지 분석을 하게된다. 실습을 위해 Spring WebLombokMustacheSpring SecuritySpring Data JPAMySQL Driver를 의존성으로 추가하여 프로젝트를 만들었다.package com.example.testsecurity.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controlle.. 데이터 베이스 공부 트랜잭션이 실행되었지만 어떠한 이유로 실패하면 데이터베이스에 행한 모든 변경은 되돌려져야 한다. 이것을 원자성이라고 한다.데이터베이스 시스템은 동시에 수행되는 다른 데이터베이스 명령어의 영향을 받지 않고 트랜잭션이 올바르게 수행할 수 있도록 특별한 조치를 해야 한다. 이러한 속성을 고립성(isolation)이라 한다.트랜잭션의 실행 결과는 시스템 장애가 발생하더라도 영구적으로 반영되어야 한다. 이러한 속성을 지속성(durability)이라 한다.여기에 일관성을 유지해야 한다.일관성(Consistency): 고립 상태(즉 동시에 수행되는 트랜잭션이 없는 상태)에서 트랜잭션 수행이 데이터베이스의 일관성을 보존해야 한다.read와 write는 메인 메모리 버퍼에 있는 변수 값을 데이터베이스에서 가져오고 저장하.. DAY 24 오늘은 트랜잭션에 대해 공부하고 swagger사용법에 대해 알아보았다. 인터넷에있는 설정방법을 찾아 swagger를 설정하고 실행하니 auth filter에 걸려 안걸리게 수정했다. 그리고 jwt를 사용하는데 jwt를 사용하는 부분에 대한것이 없어서 component를 만들어 그곳에 bear token을 같이 넣을수있게하는 config파일을 작성하니 api가 정상적으로 작동했다. DAY 23 현재 구현된 시스템:카카오 OAuth 인증:사용자를 카카오 로그인 페이지로 리다이렉트합니다.인증 코드를 받아 카카오 액세스 토큰을 발급받습니다.액세스 토큰으로 카카오 사용자 api를 호출해 카카오 ID를 조회하고, 이메일 주소를 만듭니다.사용자 관리:해당하는 이메일을 가진 사용자 정보가 없으면 새로 생성합니다. (가입)액세스 토큰을 별도의 Token으로 저장합니다.주문 처리:주문 요청 시 액세스 토큰으로 사용자를 인증합니다.상품 옵션의 재고를 확인하고 차감합니다.주문 정보를 저장하고, 위시리스트에서 해당 상품을 제거합니다.카카오톡으로 주문 내역 메시지를 전송합니다.이 방식의 한계:카카오 액세스 토큰을 직접 사용하므로 보안상 취약할 수 있습니다. (해킹 위험)토큰 관리가 제한적입니다 (만료 시간, 리프레시.. 이전 1 2 3 4 ··· 16 다음