SlideShare a Scribd company logo
Thread Blocking Is Evil
    게임네트웍컴포넌트팀
        김준현
Thread
Blocking
Non-Blocking
      &
순차적 코드 작성
Why does
Multi-Thread
  matter?

Recommended for you

Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing

그림이 정상 출력되는 다음 링크의 자료를 확인해 주세요. https://www.slideshare.net/deview/233-network-load-balancing-maglev-hashing-scheduler-in-ipvs-linux-kernel

deview2018
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지

This document presents a formula for calculating the loss function J(θ) in machine learning models. The formula averages the negative log likelihood of the predicted probabilities being correct over all samples S, and includes a regularization term λ that penalizes predicted embeddings being dissimilar from actual embeddings. It also defines the cosine similarity term used in the regularization.

deview2018
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기

[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기

deview2018
“The Free Lunch
   is OVER.”


                Herb Sutter
             December 2004
Clock speed
Execution optimization
Cache
Hyperthreading
Multicore
Cache
Write Multithreaded
    Application

Recommended for you

[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화

[224]네이버 검색과 개인화

deview2018
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)

[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)

deview2018
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기

The document discusses running a TensorFlow Serving (TFS) container using Docker. It shows commands to: 1. Pull the TFS Docker image from a repository 2. Define a script to configure and run the TFS container, specifying the model path, name, and port mapping 3. Run the script to start the TFS container exposing port 13377

deview2018
MULTI
THREAD
CONCURRENCY
하지만
현실은?
줄을 서서
기다린다

Recommended for you

[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search

The document discusses linear algebra concepts including: - Representing a system of linear equations as a matrix equation Ax = b where A is a coefficient matrix, x is a vector of unknowns, and b is a vector of constants. - Solving for the vector x that satisfies the matrix equation using linear algebra techniques such as row reduction. - Examples of matrix equations and their component vectors are shown.

deview2018
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화

This document describes the steps to convert a TensorFlow model to a TensorRT engine for inference. It includes steps to parse the model, optimize it, generate a runtime engine, serialize and deserialize the engine, as well as perform inference using the engine. It also provides code snippets for a PReLU plugin implementation in C++.

deview2018
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지

[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지

deview2018
도대체

왜?
Thread
Blocking
Starvation



             Deadlock
Starvation

Recommended for you

[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터

[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터

deview2018
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?

The document discusses machine reading comprehension (MRC) techniques for question answering (QA) systems, comparing search-based and natural language processing (NLP)-based approaches. It covers key milestones in the development of extractive QA models using NLP, from early sentence-level models to current state-of-the-art techniques like cross-attention, self-attention, and transfer learning. It notes the speed and scalability benefits of combining search and reading methods for QA.

deview2018
[231] Clova 화자인식
[231] Clova 화자인식[231] Clova 화자인식
[231] Clova 화자인식

Clova 화자인식

deview2018
Task A           Task B
1: Lock          1: Sleep 1msec
2: Sleep 2msec
3: Unlock
A4 thread blockingisevil
Deadlock
 Hold & Wait
Thread A                         Thread B
1A: Lock                         1B: Lock
2A: Request                      2B: Send Response
3A: Wait for Response            3B: Unlock
4A: Do something with Response
5A: Unlock

Recommended for you

[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화

This document describes the steps to convert a TensorFlow model to a TensorRT engine for inference. It includes steps to parse the model, optimize it, generate a runtime engine, serialize and deserialize the engine, as well as perform inference using the engine. It also provides code snippets for a PReLU plugin implementation in C++.

deview2018
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)

[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)

deview2018
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다

The document discusses various machine learning clustering algorithms like K-means clustering, DBSCAN, and EM clustering. It also discusses neural network architectures like bidirectional LSTMs, attention mechanisms, and convolutional sequence-to-sequence models. Finally, it shows charts comparing the performance of different chatbot models on validation data.

deview2018
Thread A                         Thread B
1A: Lock                         1B: Lock
2A: Request                      2B: Send Response
3A: Wait for Response            3B: Unlock
4A: Do something with Response
5A: Unlock
My
Problem
로비-룸 형태의
 게임을 제작
Remote Procedure Call

Recommended for you

[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링

The document discusses designing hardware chips for artificial intelligence. It emphasizes that microarchitecture exploration is important and takes time, suggesting allocating 6-8 months to build performance models. The document also explains that hardware description languages like Verilog and VHDL are used to specify chip designs at the logic gate level, and that physical compilation translates this into an actual chip design. Overall, the document provides an overview of the chip design process from exploring microarchitectures to physical implementation.

deview2018
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD

Adams Wei Yu is a PhD candidate at CMU working on machine reading comprehension and large scale optimization. His advisors are Jaime Carbonell and Alex Smola. He has worked on question answering models and datasets like SQuAD. QANet is one of his contributions, which uses self-attention and convolutional layers instead of RNNs for question answering. It achieves state-of-the-art results while being much faster to train and run than previous models.

deview2018
처리 로직을 함수 단위로
짜기 때문에 개발이 쉽다
방 입장 RPC          인증 RPC
Game Client              Room            Lobby
Game Client                 Room               Lobby

              방 입장 RPC 호출

                                   인증 RPC 호출

              방 입장 RPC                                 인증 RPC
               처리 로직                                   처리 로직
                                   인증 RPC 반환



              방 입장 RPC 반환
Game Client                 Room               Lobby

              방 입장 RPC 호출

                                   인증 RPC 호출

              방 입장 RPC                                 인증 RPC
               처리 로직                                   처리 로직


                                   인증 RPC 반환


              방 입장 RPC 반환

Recommended for you

Game Client                  Room               Lobby

               방 입장 RPC 호출

                                    인증 RPC 호출



              Lobby 응답 지연
               방 입장 RPC                                 인증 RPC
                처리 로직                                   처리 로직


                                    인증 RPC 반환


               방 입장 RPC 반환
Game Client                  Room               Lobby

               방 입장 RPC 호출

                                    인증 RPC 호출



              Lobby 응답 지연
               방 입장 RPC                                 인증 RPC
                처리 로직                                   처리 로직



Room서버 throughput
               방 입장 RPC 반환
                                    인증 RPC 반환




     저하
악의 축은?
Game Client                 Room               Lobby

              방 입장 RPC 호출

                                   인증 RPC 호출

              Thread
              Blocking             인증 RPC 반환



              방 입장 RPC 반환

Recommended for you

RPC의 태생적 한계
처리 로직을 함수 단위로
짜기 때문에 개발이 쉽다
처리 로직을 함수 단위로
짜기 때문에 찢을 수 없다
RPC::Result* JoinRoom(…)
{
   …
   RPC::Result answer = RPC::SyncCall(“VerifyLobbyUserToken”, …);
   ….
   return result;
}

Recommended for you

우리가 원하는 것
RPC의 장점인
순차적 코드 작성

Non-Blocking
가능한 해결책은?
RPC 이원화

Recommended for you

방 입장 요청 RPC                 인증 요청 RPC
Game Client                        Room                      Lobby

              방 입장 응답 RPC                 인증 응답 RPC
Non-Blocking O
                     방 입장 요청 RPC                 인증 요청 RPC
Game Client                        Room                      Lobby

              방 입장 응답 RPC                 인증 응답 RPC




                 순차적 코딩 X
RPC 이원화
Thread Pool 분리

Recommended for you

Room
              방 입장 RPC            인증 RPC
Game Client              TP#1              Lobby

                         TP#2
              기타 RPCs
순차적 코딩 O
                             Room
                방 입장 RPC            인증 RPC
Game Client                TP#1              Lobby

                           TP#2
                기타 RPCs




              Non-Blocking X
Thread Pool 분리
이대로 끝인 거야?

Recommended for you

Solution
Asynchronous
Programming
Request(callback, …)
Pros:
Non-Blocking

Recommended for you

Cons:
Can’t Write Sequential Code
Can’t Use Stack Variable
Can’t Split Programming Construct
…
어렵다!
이대로 끝인 거야?
Coroutine

Recommended for you

Similar to Thread
Line of Execution
Stack
      &
Local Variable
But

Recommended for you

Non-preemptive
Instruction:
Yield
Yield Break
Resume
Coroutine을
제공하는 언어는?
C#
      Erlang
      Haskell
JavaScript(since 1.7)
        Lua
        Perl
 Python(since 2.5)
       Ruby
         …

Recommended for you

C++은?
A4 thread blockingisevil
손수 구현해야 한다
Windows: Fiber

Linux:
getcontext/setcontext
makecontext
swapcontext

Recommended for you

Asynchronous
Programming
      +
  Coroutine
Non-Blocking
      &
순차적 코드 작성
Solution
   for
Starvation
Task A           Task B
1: Lock          1: Sleep 1msec
2: Sleep 2msec
3: Unlock

Recommended for you

Task A                                 Task B
Thread A                               1: Sleep 1msec
1: Create & Resume   Coroutine
                     2: Request Lock
                     3: Yield          Non-Blocking
Thread A‟
4: Resume
                     5: Sleep 2msec
                     6: Yield Break
7: Unlock
                                Sequential
                                  Code
A4 thread blockingisevil
A4 thread blockingisevil
Solution
    for
Deadlock
 Hold & Wait

Recommended for you

Thread A                         Thread B
1A: Lock                         1B: Lock
2A: Request                      2B: Send Response
3A: Wait for Response            3B: Unlock
4A: Do something with Response
5A: Unlock
Thread A                                    Thread B
1A: Lock                                    1B: Lock
2A: Create & Resume     Coroutine           2B: Send Response
                        3A: Request         3B: Unlock
                        4A: Yield           Non-Blocking
5A: Unlock
Thread A‟
(invoked by response)

6A’: Lock
7A’: Resume
                        8A’: Do something
                        with response
                        9A’: Yield Break
10A’: Unlock
                                Sequential
                                  Code
Solution
    for
My Problem
Game Client                 Room               Lobby

              방 입장 RPC 호출

                                   인증 RPC 호출

              Thread
              Blocking             인증 RPC 반환



              방 입장 RPC 반환

Recommended for you

룸 Thread       로비 서비스
1R: 인증 요청      1L: 인증 요청 처리
2R: 인증 응답 대기   2L: 인증 응답 보내기
3R: 방 입장 처리
룸 Thread                                   로비 서비스
1R: Create & Resume     Coroutine          1L: 인증 요청 처리
                        2R: 인증 요청          2L: 인증 응답 보내기
                        3R: Yield          Non-Blocking
룸 Thread‟
(invoked by response)

4R’: Resume
                        5R’: 방 입장 처리
                        6R’: Yield Break


                                Sequential
                                  Code
Request & Wait

Request & Yield
RPC의 장점인
순차적 코드 작성

Non-Blocking

Recommended for you

Coroutine
(Fiber)
                                      User-mode Scheduling
                                    Kernel-mode Scheduling
Thread




            CPU   CPU   CPU   CPU
RPC
Coroutine
                              Execution
  Pool
                             Thread Pool



            RPC Task Queue



             Network I/O
             Thread Pool
Network I/O             RPC Task             RPC Execution                                      Coroutine
      Thread                Queue                  Thread                                            Pool
Network
 Event             task
                 enqueue                task
                                      dequeue
                                                                   acquire coroutine
                                                                                       coroutine
                                                                     RPC
                                                          start    Execution



                                                          yield return
Network          resume
 Event             task               resume
                 enqueue
                                        task
                                      dequeue
                                                          resume



                                                           yield break

                                                                   release coroutine                           pooling
Network I/O             RPC Task             RPC Execution                  RPC Execution                  Coroutine
      Thread                Queue                 Thread 1                       Thread 2                       Pool
Network
 Event             task
                 enqueue                task
                                      dequeue
                                                                   acquire coroutine
                                                                                               coroutine
                                                                     RPC
                                                         resume    Execution



                                                          yield return
Network          resume
 Event             task               resume
                 enqueue
                                        task
                                      dequeue
                                                                           resume



                                                                         yield break

                                                                                          release coroutine               pooling

Recommended for you

RPC::Result* JoinRoom(…)
{
   …
   RPC::Result answer = RPC::SyncCall(“VerifyLobbyUserToken”, …);
   ….
   return result;
}
RPC::Result* JoinRoom(…)
{
   …
   RPC::Result answer = RPC::SyncCallYield(“VerifyLobbyUserToken”, …);
   ….
   return result;
}
T
P
S


    쓰래드 갯수
Wrap-up

Recommended for you

“The free lunch
  is OVER.”
   Write Multithreaded
        Application
       CONCURRENCY
Thread Blocking is Evil

  Starvation   Deadlock
Asynchronous
Programming
      +
  Coroutine
Non-Blocking
      +
    Writing
Sequential Code

Recommended for you

Request & Wait

Request & Yield
Inspired by
  Jeffrey Richter
 ‘Simplified APM With
The AsyncEnumerator’
완벽함이란
더 이상 추가할 것이 없을
때가 아니라
더 이상 버릴 것이 없을
때 완성된다.
        „성당과 시장‟에서

More Related Content

More from NAVER D2

[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
NAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
NAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
NAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
NAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
NAVER D2
 
[231] Clova 화자인식
[231] Clova 화자인식[231] Clova 화자인식
[231] Clova 화자인식
NAVER D2
 
[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화
NAVER D2
 
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
NAVER D2
 
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
NAVER D2
 
[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링
NAVER D2
 
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
NAVER D2
 

More from NAVER D2 (20)

[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 
[231] Clova 화자인식
[231] Clova 화자인식[231] Clova 화자인식
[231] Clova 화자인식
 
[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화
 
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
[222]누구나 만드는 내 목소리 합성기 (부제: 그게 정말 되나요?)
 
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
Old Version: [211] 인공지능이 인공지능 챗봇을 만든다
 
[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링
 
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
[246]QANet: Towards Efficient and Human-Level Reading Comprehension on SQuAD
 

A4 thread blockingisevil