KR20200000451A - 반도체 검사 및 계측 시스템들을 위한 확장가능하고 유연한 작업 분배 아키텍처 - Google Patents

반도체 검사 및 계측 시스템들을 위한 확장가능하고 유연한 작업 분배 아키텍처 Download PDF

Info

Publication number
KR20200000451A
KR20200000451A KR1020197037694A KR20197037694A KR20200000451A KR 20200000451 A KR20200000451 A KR 20200000451A KR 1020197037694 A KR1020197037694 A KR 1020197037694A KR 20197037694 A KR20197037694 A KR 20197037694A KR 20200000451 A KR20200000451 A KR 20200000451A
Authority
KR
South Korea
Prior art keywords
worker
task
tasks
node
cpu
Prior art date
Application number
KR1020197037694A
Other languages
English (en)
Other versions
KR102606550B1 (ko
Inventor
아자이 굽타
산카르 벤카타라만
사시 발라싱암
모한 마하데반
Original Assignee
케이엘에이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 케이엘에이 코포레이션 filed Critical 케이엘에이 코포레이션
Publication of KR20200000451A publication Critical patent/KR20200000451A/ko
Application granted granted Critical
Publication of KR102606550B1 publication Critical patent/KR102606550B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

반도체 검사 및 계측을 위한 고 대역폭, 하이브리드 프로세서 계산 시스템들을 위한 실시간 작업 분배 소프트웨어 아키텍처들이 개시된다. 컴퓨팅 요구를 충족시키기 위해 CPU들 및 GPU들의 개수를 변경하는 것에 의해 이미징 프로세싱 컴퓨터 아키텍처가 확장가능할 수 있다. 이 아키텍처는 최대 처리량을 위해 이미지 프로세싱 작업들을 병렬로 실행하기 위해 마스터 노드와 하나 이상의 워커 노드를 사용하여 정의된다. 마스터 노드는 반도체 웨이퍼 또는 레티클로부터의 입력 이미지 데이터를 수신할 수 있다. 입력 이미지 데이터에 기초한 작업들이 워커 노드들 중 하나에 분배된다. 각각의 워커 노드는 적어도 하나의 CPU와 적어도 하나의 GPU를 포함할 수 있다. 이미지 프로세싱 작업은 다수의 태스크들을 포함할 수 있고, 이미지를 프로세싱하기 위해 워커 작업 관리자를 사용하여 태스크들 각각이 워커 노드 내의 CPU 또는 GPU 중 하나에 배정될 수 있다.

Description

반도체 검사 및 계측 시스템들을 위한 확장가능하고 유연한 작업 분배 아키텍처
관련 출원들의 상호 참조
본 출원은 2017년 5월 23일자로 출원되고 미국 출원 번호 62/509,927을 배정받은 가특허 출원에 대한 우선권을 주장하며, 이 미국 출원의 개시내용은 이로써 참고로 포함된다.
개시내용의 분야
본 개시내용은 반도체 검사 및 계측 시스템들에 관한 것이다.
반도체 제조 산업의 발전은 수율 관리, 특히 계측 및 검사 시스템들에 대해 점점 더 많은 요구를 하고 있다. 임계 치수들이 계속 축소된다. 경제성은 산업계에 고수율, 고가치의 생산을 달성하기 위해 시간을 단축시키도록 주도하고 있다. 수율 문제를 검출하는 것으로부터 이를 해결하는 것까지의 총 시간을 최소화하는 것이 반도체 제조업체에 대한 투자 수익률을 결정한다.
로직 및 메모리 디바이스들과 같은, 반도체 디바이스들을 제조하는 것은 전형적으로 반도체 디바이스들의 다양한 피처들 및 다중 레벨들을 형성하기 위해 많은 수의 제조 프로세스들을 사용하여 반도체 웨이퍼를 프로세싱하는 것을 포함한다. 예를 들어, 리소그래피는 레티클로부터의 패턴을 반도체 웨이퍼 상에 배열된 포토레지스트에 전사하는 것을 수반하는 반도체 제조 프로세스이다. 반도체 제조 프로세스들의 부가의 예들은 화학 기계적 폴리싱(CMP), 에칭, 퇴적, 및 이온 주입을 포함하지만, 이들로 제한되지 않는다. 다수의 반도체 디바이스들은 단일 반도체 웨이퍼 상에 어떤 배열로 제조되고 이어서 개별 반도체 디바이스들로 분리될(separated) 수 있다.
검사 프로세스들은 반도체 제조 프로세스 동안 다양한 단계들에서 웨이퍼들 상의 결함들을 검출하여 제조 프로세스에서의 보다 높은 수율, 따라서 보다 높은 수익을 증진시키기 위해 사용된다. 검사는 항상 집적 회로들(IC들)과 같은 반도체 디바이스들을 제조하는 것의 중요한 부분이었다. 그렇지만, 반도체 디바이스들의 치수들이 감소함에 따라, 수용가능한(acceptable) 반도체 디바이스들의 성공적인 제조에 검사가 훨씬 더 중요해지는데, 그 이유는 보다 작은 결함들이 디바이스들을 고장나게 할 수 있기 때문이다. 예를 들어, 반도체 디바이스들의 치수들이 감소함에 따라, 감소하는 크기의 결함들의 검출이 필요하게 되었는데, 그 이유는 상대적으로 작은 결함들조차도 반도체 디바이스들에 원하지 않는 수차들을 야기할 수 있기 때문이다.
결함 검토는 전형적으로 검사 프로세스에 의해 검출되었던 결함들을 재검출하는 것(re-detecting) 및 고배율 광학 시스템 또는 스캐닝 전자 현미경(scanning electron microscope, SEM) 중 어느 하나를 사용하여 보다 고분해능으로 결함들에 관한 부가 정보를 생성하는 것을 수반한다. 결함 검토는 전형적으로 결함들이 검사에 의해 검출되었던 시료들 상의 이산 위치들(discrete locations)에서 수행된다. 결함 검토에 의해 생성된 결함들에 대한 보다 고분해능의 데이터는 프로파일, 거칠기(roughness), 또는 보다 정확한 사이즈 정보 등과 같은 결함들의 어트리뷰트들(attributes)을 결정하는 데 보다 적합하다.
반도체 제조 프로세스 동안 다양한 단계들에서 프로세스를 모니터링 및 제어하기 위해 계측 프로세스들이 또한 사용된다. 시료들 상에서 결함들이 검출되는 검사 프로세스들과는 달리, 계측 프로세스들이 현재 사용되는 검사 툴들(inspection tools)을 사용하여 결정될 수 없는 시료들의 하나 이상의 특성을 측정하는 데 사용된다는 점에서 계측 프로세스들은 검사 프로세스들과 상이하다. 예를 들어, 계측 프로세스들은, 프로세스의 성능이 하나 이상의 특성으로부터 결정될 수 있도록, 프로세스 동안 시료들 상에 형성된 피처들의 치수(예컨대, 선 폭(line width), 두께 등)와 같은 시료들의 하나 이상의 특성을 측정하는 데 사용된다. 그에 부가하여, 시료들의 하나 이상의 특성이 수용가능하지 않은(unacceptable)(예컨대, 특성(들)에 대한 미리 결정된 범위를 벗어난) 경우, 프로세스에 의해 제조된 부가의 시료들이 수용가능한 특성(들)을 갖도록, 시료들의 하나 이상의 특성의 측정치들이 프로세스의 하나 이상의 파라미터를 변경하는 데 사용될 수 있다.
검사에 의해 검출되는 결함들이 결함 검토에서 재방문되는 결함 검토 프로세스들과는 달리, 어떠한 결함도 검출되지 않았던 위치들에서 계측 프로세스들이 수행될 수 있다는 점에서 계측 프로세스들은 결함 검토 프로세스들과 또한 상이하다. 환언하면, 결함 검토와 달리, 계측 프로세스가 시료들 상에서 수행되는 위치들은 시료들 상에서 수행되는 검사 프로세스의 결과들과 무관할 수 있다. 특히, 계측 프로세스가 수행되는 위치들은 검사 결과들과 무관하게 선택될 수 있다.
반도체 검사 및 계측 툴들은 일반적으로 실시간 고 대역폭 임베디드 시스템들이다. 반도체 검사 및 계측 툴들은 계산 부하들을 상이한 프로세서 유형들(예컨대, CPU들 및 GPU들)에 걸쳐 동적으로 분배하는 작업 분배 시스템들(job distribution systems)을 포함하지 않는다. 반도체 검사 및 계측 툴들은 하이브리드(예컨대, CPU 및 GPU) 이미지 프로세싱 시스템들을 또한 포함하지 않는다.
따라서, 반도체 검사 및 계측 툴들에 개선된 작업 분배 아키텍처가 필요하다.
제1 실시예에서 시스템이 제공된다. 이 시스템은 복수의 워커 노드들(worker nodes) 및 복수의 워커 노드들과 전자 통신하는 마스터 노드(master node)를 포함한다. 워커 노드들 각각은 워커 작업 관리자(worker job manager)를 실행하는 적어도 하나의 CPU 및 CPU와 전자 통신하는 적어도 하나의 GPU를 포함한다. 워커 작업 관리자는 수신된 작업을 복수의 태스크들로 분할하도록 구성된다. 워커 작업 관리자들 각각은 수신된 작업의 태스크들 각각을 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정하도록 구성된다. 워커 작업 관리자들 각각은 워커 노드 내의 GPU 중 하나 대신에 CPU 중 하나에 태스크들 중 하나를 배정할지 또는 워커 노드 내의 CPU 중 하나 대신에 GPU 중 하나에 태스크들 중 하나를 배정할지를 결정하도록 구성된다. 마스터 노드는 반도체 웨이퍼 또는 레티클에 관한 입력 이미지 데이터를 수신한다. 마스터 노드는 입력 이미지 데이터를 적어도 제1 작업으로 분할하고 제1 작업을 워커 노드들 중 하나에 분배하도록 구성된다. 워커 작업 관리자들 각각은 추후 작업에서의 태스크들보다 제1 작업에서의 태스크들을 우선순위화하도록 추가로 구성된다.
워커 노드들 중 하나에서 GPU보다 CPU가 더 많이 있을 수 있거나 워커 노드들 중 하나에서 CPU보다 GPU가 더 많이 있을 수 있다.
마스터 노드는 입력 이미지 데이터를 제2 작업으로 분할하고 제2 작업을 워커 노드들 중 하나에 분배하도록 추가로 구성될 수 있다.
이 시스템은 워커 작업 관리자를 실행하는 CPU와 전자 통신하는 워커 노드들 중 하나 내의 다른 CPU를 포함할 수 있다.
이 시스템은 마스터 노드와 전자 통신하는 적어도 하나의 CPU 워커 노드를 포함할 수 있다. CPU 워커 노드는 GPU 중 어느 것도 갖지 않고 CPU 중 하나 이상을 포함할 수 있다. CPU 워커 노드 내의 CPU 중 하나가 워커 작업 관리자를 실행할 수 있다.
이 시스템은 마스터 노드와 전자 통신하는 적어도 하나의 GPU 워커 노드를 포함할 수 있다. GPU 워커 노드는 워커 작업 관리자를 실행하는 것 외에는 CPU 중 어느 것도 갖지 않고 GPU 중 하나 이상을 포함할 수 있다.
이 시스템은 애플리케이션 프로그래밍 인터페이스를 사용하여 통합 메모리 제어기(integrated memory controller, IMC) 클라이언트와 통신하도록 구성된 인터페이스 계층을 포함할 수 있다.
워커 작업 관리자들 각각은 딥 러닝 모델을 갖는 모듈을 포함할 수 있다. 딥 러닝 모델은 수신된 작업에서의 태스크들 각각을 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정하도록 구성될 수 있다.
이 시스템은 GPU와 전자 통신하는 신경 네트워크를 포함할 수 있다.
마스터 노드는 프로세싱 툴과 전자 통신할 수 있다. 프로세싱 툴은 반도체 검사 툴 또는 반도체 계측 툴을 포함한다.
제2 실시예에서 방법이 제공된다. 입력 이미지 데이터는 반도체 검사 툴 또는 반도체 계측 툴로부터 마스터 노드에 수신된다. 입력 이미지 데이터는 반도체 웨이퍼 또는 레티클에 관한 것이다. 마스터 노드를 사용하여, 입력 이미지 데이터는 적어도 제1 작업으로 분할된다. 마스터 노드를 사용하여, 제1 작업은 마스터 노드와 전자 통신하는 복수의 워커 노드들 중 제1 워커 노드에 분배된다. 워커 노드들 각각은 워커 작업 관리자를 실행하는 적어도 하나의 CPU 및 CPU와 전자 통신하는 적어도 하나의 GPU를 포함한다. 워커 작업 관리자는 수신된 작업을 복수의 태스크들로 분할하도록 구성된다. 제1 워커 노드 내의 워커 작업 관리자를 사용하여, 제1 작업이 복수의 태스크들로 분할된다. 제1 워커 노드 내의 워커 작업 관리자를 사용하여, 제1 작업에서의 태스크들 각각이 제1 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정된다. 제1 워커 노드 내의 워커 작업 관리자를 사용하여, 제1 작업에서의 태스크들이 추후 작업에서의 태스크들보다 우선순위화된다.
일 예에서, 입력 이미지 데이터는 마스터 노드를 사용하여 제2 작업으로 분할될 수 있다. 제2 작업은 마스터 노드를 사용하여 복수의 워커 노드들 중 제2 워커 노드에 분배될 수 있다. 제2 워커 노드 내의 워커 작업 관리자를 사용하여, 제2 작업이 복수의 태스크들로 분할될 수 있다. 제2 워커 노드 내의 워커 작업 관리자를 사용하여, 제2 작업에서의 태스크들 각각이 제2 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정될 수 있다.
워커 작업 관리자들 각각은 딥 러닝 모델을 갖는 모듈을 포함할 수 있다. 딥 러닝 모델은 수신된 작업에서의 태스크들 각각을 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정하도록 구성될 수 있다. 이 방법은 딥 러닝 모델을 리트레이닝(retraining)시키는 단계를 추가로 포함할 수 있다.
워커 작업 관리자들은 선입 선출 작업 큐(first in first out job queue) 하에서 동작할 수 있다.
워커 작업 관리자는 수신된 작업에서의 태스크들 각각을 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정하도록 구성될 수 있으며, 워커 작업 관리자는 태스크들의 완료 시간을 최소화하도록 태스크들을 배정한다.
입력 이미지 데이터는 동일한 배치들에서(in equal batches) GPU들에 분배될 수 있다.
입력 이미지 데이터는 다수의 웨이퍼 위치들로부터의 것일 수 있다. 입력 이미지 데이터는 동일한 배치에서(in a same batch) 프로세싱될 수 있다.
제1 작업은 병렬로 그리고 실시간으로 제1 워커 노드에 분배될 수 있다. 입력 이미지 데이터가 메모리에서 취득될 때 제1 작업이 제1 워커 노드에 분배될 수 있다.
본 개시내용의 본질 및 목적들의 보다 충분한 이해를 위해, 첨부 도면들과 관련하여 이루어진 이하의 상세한 설명이 참조되어야 한다.
도 1a 및 도 1b는 본 개시내용에 따른 시스템 아키텍처의 실시예의 블록 다이어그램들을 도시하고, 여기서 도 1b의 워커 노드는 도 1a에서의 워커 노드 0, 워커 노드 1, 워커 노드 (K-1) 각각과 함께 사용될 수 있다;
도 2는 본 개시내용에 따른 GPU 작업 관리자 아키텍처의 실시예의 다이어그램이다;
도 3은 본 개시내용에 따른 다수의 GPU 태스크들을 실행하기 위한 GPU 작업 관리자 아키텍처의 실시예의 상세 다이어그램이다;
도 4는 데이터 병렬처리(data parallelism)를 통한 확장성을 나타내는 다이어그램이다.
도 5는 본 개시내용에 따른 하이브리드 이미지 컴퓨터(IMC) 소프트웨어 아키텍처의 실시예의 다이어그램이다;
도 6은 본 개시내용에 따른 GPU 작업 관리자의 알고리즘 프로세스 소프트웨어 스택의 다이어그램이다;
도 7은 본 개시내용에 따른 방법의 플로차트이다.
비록 청구된 주제(subject matter)가 몇몇 실시예들과 관련하여 기술될 것이지만, 본 명세서에 기재된 이점들 및 특징들 전부를 제공하지는 않는 실시예들을 포함한, 다른 실시예들이 또한 본 개시내용의 범위 내에 있다. 본 개시내용의 범위를 벗어나지 않으면서 다양한 구조적, 논리적, 프로세스 단계, 및 전자적 변경들이 이루어질 수 있다. 그에 따라, 본 개시내용의 범위는 첨부된 청구항들을 참조하는 것에 의해서만 한정된다.
본 명세서에 개시된 실시예들은 반도체 검사 및 계측에 사용될 수 있는 고 대역폭, 하이브리드 프로세서 계산 시스템들을 위한 실시간 작업 분배 소프트웨어 아키텍처들을 포함한다. 이 아키텍처는 확장가능하고, 비용 및 시스템 처리량을 충족시키는 데 요구되는 임의의 계산 대역폭에 대한 컴퓨팅 요구(computing needs)를 충족시키기 위해 CPU들 및 GPU들의 개수가 조정될 수 있다. 따라서, 이 아키텍처는 임의의 반도체 검사 또는 계측 툴 또는 제품 플랫폼에 도움이 될(serve) 수 있다. 일부 실시예들에서, GPU 배칭(GPU batching)은 최소한의 레이턴시를 갖는 효율적인 데이터 전송 및 GPU 코어들의 효율적인 이용을 위해 다수의 태스크들을 GPU들에 디스패치하기 전에 그룹화한다.
본 명세서에 개시된 실시예들은 유연한 아키텍처를 사용할 수 있다. 이 아키텍처는 CPU 상에서 실행될 종래의 알고리즘들에 의해 인터스페이싱되는(interspaced) 임의의 개수의 GPU 바운드(GPU-bound) 태스크 유형들을 포함한, CPU 또는 GPU 상에서의 임의의 유형의 계산을 지원할 수 있다. 모든 종류들의 태스크 유형들이 CPU 또는 GPU 상에서 실행될 수 있다. 그 결과, 이 아키텍처는 하이브리드(CPU/GPU) 해결책을 구축하려고 의도하는 대부분의 검사 및 계측 툴들에 맞게 적합화되고 커스터마이즈될 수 있다. 실시간 분산 아키텍처는 작업들을 최소한의 작업 디스패치 레이턴시로 다수의 노드들에 걸쳐 있는 다수의 프로세서들(예컨대, CPU들 또는 GPU들)에 병렬로 그리고 실시간으로(예컨대, 이미지가 메모리에서 취득될 때) 분배할 수 있다.
이 아키텍처의 실시예들은 CPU-GPU 작업부하들이 노드 내에서 또는 노드들에 걸쳐 자연스럽게 혼합될(예컨대, CPU 태스크에서 GPU 태스크로 CPU 태스크로) 수 있게 해준다. 이는 또한 노드당 불균일한 개수의 CPU들 및 GPU들에 대해 효율적인 프로세싱을 가질 수 있는 능력을 제공할 수 있다. 따라서, 노드당 CPU들의 개수가 노드당 GPU들의 개수보다 많거나 적을 수 있다.
도 1은 시스템 아키텍처(100)의 실시예의 블록 다이어그램이다. 시스템(100)은 마스터 노드(101) 및 다수의 워커 노드들(102)을 포함한다. 마스터 노드(101) 및 워커 노드들(102)은, 고속 인피니밴드(Infiniband) 네트워크를 사용하는 것과 같이, 56 Gbps와 같은 속도로 양방향 통신을 갖도록 접속될 수 있다.
일 예에서, 마스터 노드(101)는 2개의 인텔 x64 프로세서 칩을 포함한다. 예를 들어, 칩당 14개의 CPU 코어를 가진 브로드웰(Broadwell) 칩들이 사용될 수 있다. 이 예에서, 마스터 노드(101)는 256 GB의 RAM을 포함한다.
시스템 아키텍처(100)는 1개 내지 72개 - 이들 사이의 임의의 값 또는 범위를 포함함 - 의 워커 노드(102)를 포함할 수 있다. 특정의 실시예에서, 시스템 아키텍처(101)는 2개 내지 40개의 워커 노드(102)를 포함한다. 또 다른 특정의 실시예에서, 시스템 아키텍처는 18개의 워커 노드(102)를 포함한다.
워커 노드들(102) 각각은 적어도 하나의 CPU(103) 및 CPU(103)와 전자 통신하는 적어도 하나의 GPU(104)를 포함한다. 일 예에서, 워커 노드(102)는 2개의 인텔 x64 프로세서 칩을 포함한다. 예를 들어, 칩당 10개의 CPU 코어를 가진 브로드웰 칩들이 사용될 수 있다. 이 예에서, 워커 노드(102)는 256 GB의 RAM을 포함한다.
각각의 워커 노드(102) 내의 CPU(103) 중 하나는, GPU 작업 관리자와 같은, 워커 작업 관리자(105)를 실행할 수 있다. 워커 작업 관리자(105)는 워커 노드(102) 내의 별개의 CPU 상에서 실행될 수 있다. 예를 들어, 워커 노드(102)는 20개의 CPU를 포함할 수 있으며, 그 중 하나가 워커 작업 관리자(105)를 실행한다.
워커 작업 관리자(105)는 수신된 작업(데이터 샤드(data shard))을 CPU(103) 또는 GPU(104)에 의해 프로세싱될 복수의 태스크들로 분할하도록 구성될 수 있다. 수신된 작업은 워커 노드(102)에 로컬적으로 저장될 수 있다. 작업은, 논리적 이미지 프로세싱 경계들에 기초하여, 다수의 태스크들로 이루어져 있다. 이러한 논리적 분리 중 일부는 태스크들을 분할하는 데 CPU 또는 GPU가 사용되는지에 기초한다.
워커 작업 관리자(105)는 또한 수신된 작업을 다수의 작업으로 분할할 수 있다. 이것은 데이터 병렬처리의 한 형태이다.
일 예에서, 하나 이상의 워커 노드(102)는 그 워커 노드(102) 내의 다른 CPU(103)와 전자 통신하는, 워커 작업 관리자(105)를 실행하기 위한 CPU(103)를 포함한다.
워커 작업 관리자들(105) 각각은 수신된 작업의 태스크들 각각을 워커 노드(102) 내의 CPU(103) 중 하나 또는 GPU(104) 중 하나에 배정하도록 구성될 수 있다. 워커 작업 관리자(105)는 태스크들 각각이 배정되는 CPU(103) 또는 GPU(104)와 동일한 워커 노드(102)에 있을 수 있다.
워커 작업 관리자들(105) 각각은 워커 노드(102) 내의 GPU(104) 중 하나 대신에 CPU(103) 중 하나에 태스크들 중 하나를 배정할지 또는 워커 노드(102) 내의 CPU(103) 중 하나 대신에 GPU(104)에 태스크들 중 하나를 배정할지를 결정하도록 구성될 수 있다.일 예에서, 작업과 연관된 태스크들 각각은 그의 연산을 제어하기 위한 구성 세부사항들을 갖는다. 이 구성 세부사항들 중 하나는 그의 실행을 위한 프로세서 유형일 수 있으며, 이 프로세서 유형은 CPU(103) 또는 GPU(104)가 그의 연산을 실행하는 데 사용되는지를 좌우(dictate)할 수 있다.
워커 작업 관리자(105)는 이어서 다수의 작업들에 대응하는 다수의 CPU 바운드(CPU-bound) 태스크들(예컨대, 태스크 0, 태스크 2, 또는 태스크 4)을 CPU 바운드 알고리즘 프로세스들에 그리고 다수의 작업들에 대응하는 다수의 GPU 바운드 태스크들(예컨대, 태스크 1 또는 태스크 3)을 GPU 바운드 알고리즘 프로세스들 또는 GPU 작업 관리자 프로세스(예시되지 않음)에 디스패치할 수 있다. 예를 들어, 작업 인덱스 T 내지 작업 인덱스 (T+P-1)의 태스크 0은 P개의 CPU 바운드 알고리즘 프로세스에 디스패치될 것인 반면 작업 인덱스들 <=(T-1) 중 일부의 태스크 1 또는 태스크 3은 GPU 작업 관리자 프로세스에 의해 현재 프로세싱되고 있다. 주어진 작업에 대한 모든 태스크들은 CPU들과 GPU들 사이에서 호핑하면서 순차적인 순서로 실행될 수 있으며 여기서 하나의 태스크의 출력은 다음 태스크에 대한 입력으로서 피드된다. 예를 들어, (도 1에 도시된 바와 같이), n개의 작업 중 임의의 것에 대한 태스크 시퀀스는 태스크 0(CPU), 태스크 1(GPU), 태스크 2(CPU), 태스크 3(GPU), 및 태스크 4(CPU)일 것이다. 그렇지만, 작업 X로부터의 태스크들은 작업 Y로부터의 태스크들에 의존하지 않는다. 따라서, CPU 및/또는 GPU들이 프로세싱에 이용가능한 한, 작업 X 및 작업 Y로부터의 태스크들이 병렬로 실행될 수 있다.
GPU 작업 관리자는 각각의 유형의 GPU 기반 작업 실행을 위한 별개의 작업 큐들을 가지는 것에 의해 내부 병렬 워크플로 실행 메커니즘(internal, parallel work-flow execution mechanism)을 가질 수 있다. 일 예에서, “검출" 및 "분류" 유형 GPU 작업들이 있으며, GPU 작업 관리자는 그 작업 큐들에 서비스하기 위한 다수의 CPU 스레드들(내부적으로), 및 GPU 프로세서로부터 출력된 결과들을 프로세싱하기 위한 별개의 CPU 스레드를 포함한다.
GPU 작업 관리자 프로세스에 디스패치되는 GPU 바운드 태스크들은, 보다 높은 CPU 대 GPU 데이터 전송 효율을 갖도록 GPU들에 디스패치되기 전에 입력 데이터의 배칭(batching)을 가능하게 해주기 위해, GPU 작업 관리자 프로세스의 입력 큐에 큐잉될 수 있다. 입력 데이터는 입력 이미지 데이터일 수 있다.
개시된 아키텍처는 임의의 유형의 GPU 바운드 태스크를 지원하도록 충분히 유연하다. 이 아키텍처의 실시예에 대한 계산 모델(compute model)이 생성될 수 있다. 워커 노드들을 추가 또는 제거하는 동안 또는 노드당 GPU들을 추가 또는 제거하는 동안 계산 모델이 업데이트될 수 있다.
시스템 아키텍처(100)는 웨이퍼들을 검사하기 위한 다양한 동작 모드들을 갖는다. 각각의 작업에 대해 수행될 고유한 태스크 세트에 기초하여 각각의 동작 모드에 대한 계산 모델이 설계될 수 있다. 계산 모델은 태스크들의 리스트 및 이미지 입력 조건들에 기초한 각각의 태스크에 대한 계산 시간을 가질 수 있다. 계산 모델은 모든 태스크들의 총 프로세싱 시간을 합계(tally up)할 수 있다. 이 시간에 기초하여, 요구된 입력 이미지 레이트를 충족시키기 위해, CPU 및 GPU 프로세서들의 개수, 및 노드들의 총수가 결정될 수 있다.
입력 데이터가, 예를 들어, 고속 인피니밴드 링크들을 사용하여 노드들에 걸쳐 전송될 수 있다.
이 아키텍처의 다른 실시예들이 가능하다. 예를 들어, 워커 노드들 중 일부만이 CPU들 및 GPU들 둘 다를 포함하고 나머지 워커 노드들은 CPU들만을 포함한다. 다른 예에서, CPU 바운드 및 GPU 바운드 태스크들을 위한 전용 워커 노드들이 있다.
이 아키텍처의 실시예들은 CPU들과 GPU들 사이를 왔다갔다 하면서 다수의 태스크 유형들을 지원할 수 있다. GPU 작업 관리자 데이터 흐름은 도 3에 도시되어 있으며 단일 노드 내의 단일 호스트 CPU 및 다수의 GPU들 상에서 실행되는 GPU 작업 관리자 소프트웨어 스택을 통해 데이터가 어떻게 흐르는지를 보여준다. 도 5에 도시된 GPU 작업 관리자 아키텍처는 실시예들의 유연성 및 확장성을 예시한다.
마스터 노드(101)는 워커 노드들(102)과 전자 통신한다. 마스터 노드(101)는, 입력 이미지 데이터와 같은, 반도체 웨이퍼 또는 레티클에 관한 입력 데이터를 수신할 수 있다. 마스터 노드(101)는 입력 데이터를 적어도 제1 작업으로 분할하고 제1 작업을 워커 노드들(102) 중 하나에 분배하도록 구성될 수 있다. 마스터 노드(101) 상에서 실행되는 마스터 작업 관리자는 입력 데이터를 작업들(데이터 샤드들)로 분할(샤딩)할 수 있다. 각각의 작업은 마스터 노드(101) 내의 마스터 작업 관리자를 사용하여 워커 노드들(102) 중 하나에게 송신된다.
각각의 작업은 웨이퍼 상의 사이트(site)에 대응할 수 있고 그에 관련된 사이트 인덱스(site index)를 가질 수 있다. 입력 데이터를 작업들로 분할할 때, 마스터 노드 작업 관리자는 이미지 컴퓨터 시스템 전체에 걸쳐 로드 밸런싱(load balancing)을 최대화하기 위해 작업들을 워커 노드들에 디스패치할 수 있다. 이것은 사이트/작업과 연관된 모든 태스크들이 단일 워커 노드에게 전송되도록 보장할 수 있으며, 이는 단일 사이트 작업을 프로세싱하기 위한 워커 노드들 사이의 임의의 교차 트래픽(cross traffic)을 최소화한다.
스와싱(swathing) 아키텍처에서는, 입력 데이터가 데이터 전송 레이턴시를 피하기 위해 마스터 노드(101)를 사용하지 않고 워커 노드들(102)에 의해 직접 분할될 것이다.
마스터 노드(101)는, 반도체 검사 또는 반도체 계측 툴과 같은, 프로세싱 툴과 전자 통신할 수 있다. 예를 들어, 마스터 노드(101)는 스캐닝 전자 현미경(scanning electron microscope, SEM), 광학 현미경, 광대역 플라스마(broad band plasma, BBP) 툴, 또는 다른 반도체 검사 또는 계측 툴들과 전자 통신할 수 있다.
워커 작업 관리자들(105) 각각은 추후 작업에서의 태스크들보다 제1 작업에서의 태스크들을 우선순위화하도록 추가로 구성될 수 있다.
마스터 노드(101)는 입력 데이터를 제2 작업으로 분할하고 제2 작업을 워커 노드들(102) 중 하나에 분배하도록 추가로 구성될 수 있다. 이것은 제1 작업을 수신한 바로 그 워커 노드(102) 또는 상이한 워커 노드(102)일 수 있다.
각각의 워커 노드(102)의 구성(composition)은 다를 수 있다. 워커 노드(102)에 GPU(104)보다 CPU(103)가 더 많이 있을 수 있거나, 워커 노드에 동일한 수의 CPU(103) 및 GPU(104)가 있을 수 있거나, 또는 워커 노드(102)에 CPU(103)보다 GPU(104)가 더 많이 있을 수 있다. 도 1에서 동일한 구성을 갖는 것으로 예시되어 있지만, 하나 이상의 워커 노드(102)는 상이한 구성의 CPU(103) 및 GPU(104)를 가질 수 있다. 일 예에서, 워커 노드들(102) 각각은 상이한 구성의 CPU(103) 및 GPU(104)를 가질 수 있다.
일 예에서, 워커 노드(102)에 20개 이상의 CPU 및 1개 내지 4개의 GPU가 있을 수 있다. 일반적으로, 워커 노드(102)에 GPU들보다 CPU들이 더 많이 있지만, 다른 구성들이 가능하다.
시스템(100)은 마스터 노드(101)와 전자 통신하는 적어도 하나의 CPU 워커 노드를 포함할 수 있다. CPU 워커 노드는 하나 이상의 CPU를 포함하며, 그 중 하나는 워커 작업 관리자(105)를 실행한다. CPU 워커 노드는 GPU를 포함하지 않는다.
시스템(100)은 마스터 노드(101)와 전자 통신하는 적어도 하나의 GPU 워커 노드를 포함할 수 있다. GPU 워커 노드는 하나 이상의 GPU를 포함한다. GPU 워커 노드는 CPU를 포함하지 않거나 워커 작업 관리자(105)를 실행할 CPU만을 포함한다.
시스템(100)은 애플리케이션 프로그래밍 인터페이스를 사용하여 IMC 클라이언트와 통신하도록 구성될 수 있는 인터페이스 계층을 포함할 수 있다.
실시예에서, 워커 작업 관리자들(105) 각각은 딥 러닝 모델을 갖는 모듈을 포함한다. 딥 러닝 모델은 수신된 작업에서의 태스크들 각각을 워커 노드(102) 내의 CPU(103) 중 하나 또는 GPU(104) 중 하나에 배정하도록 구성될 수 있다. 딥 러닝 모델이 태스크를 CPU(103) 또는 GPU(104)에 배정하는지는 구성 파일에서의 미리 결정된 설정일 수 있다.
주어진 동작 모드의 검사에 대하여, 대응하는 딥 러닝 모델 또는 모델이 있을 것이다. 모델 또는 모델들의 세트가 그 태스크 구성에 기초하여 각각의 워커 노드의 CPU 또는 GPU 상에 로딩될 수 있다. 일 예에서, 딥 러닝 모델이 CPU 대신에 GPU 상에서 실행된다.
실시예에서, 신경 네트워크는 GPU(104)와 전자 통신한다. 예를 들어, 신경 네트워크는 대응하는 이미지 프로세싱 태스크에 대한 딥 러닝 모델을 실행하기 위해 GPU(104) 또는 CPU 상에 배포될 수 있다.
본 명세서에 개시된 실시예를 사용하여, GPU 바운드 태스크 유형들이 실행될 수 있다. 다양한 애플리케이션 프로그램 인터페이스들을 사용하여 IMC 클라이언트 소프트웨어와 통신하는 씬 래퍼 또는 인터페이스 계층(thin wrapper or interface layer)이 사용될 수 있다. 이 래퍼는 주어진 태스크 유형을 초기화하고, 이미지들 및 알고리즘 파라미터들을 실행을 위한 입력들로서 제공하며, 실행으로부터의 결과들을 출력할 수 있다. 입력 선입 선출(FIFO) 큐가 사용될 수 있다. 각각의 네트워크에 대해, 특정 태스크 유형을 배치 모드(batch mode)로 실행하기 위해 하나 이상의 GPU에 피드될 데이터가 항상 이용가능하도록, 입력 데이터를 버퍼링하기 위해 입력 FIFO 큐가 생성될 수 있다. 데이터는 이미지 컴퓨터 클라이언트 스레드를 사용하여 입력 데이터 큐에 인큐잉될(enqueued) 수 있고 실행을 위해 데이터를 하나 이상의 GPU에게 추가로 전송하는 프로세싱 스레드(입력 큐에 대한 블로킹(blocking))에 의해 디큐잉될(dequeued) 수 있다. GPU가 현재 데이터를 처리하느라 비지(busy)인 동안 IMC 클라이언트 스레드는 활성일 수 있고 향후 데이터(future data)를 계속 인큐잉할 수 있다. 프로세싱 스레드가 블로킹되고 GPU들이 프로세싱을 완료하기를 기다리지만 IMC 스레드는 얼라이브(alive)인 채로 유지될 수 있다. 프로세싱이 GPU에 의해 완료된 후에, 태스크 결과들은 프로세싱 스레드에 의해 출력 FIFO 큐 내로 인큐잉될 수 있다. 결과들 스레드(출력 FIFO 큐 상에 블로킹되어 있음)는 출력 데이터를 디큐잉할 수 있고 출력을 이미지 컴퓨터 공유 메모리에 복사한다.
본 명세서에 개시된 아키텍처의 실시예들은 최소한의 구현 노력으로 실행될 새로운 GPU 바운드 태스크 유형들의 추가를 가능하게 해줄 수 있다. 태스크 유형 1만을 실행하거나 동일한 작업 내의 태스크 유형 1과 태스크 유형 2 둘 다를 실행하는 옵션으로 2개의 GPU 바운드 태스크 유형이 실행될 수 있다. 데이터 병렬처리를 통한 확장성을 보여주는 다이어그램인, 도 4에 도시된 바와 같이, 하나 이상의 GPU 상에서 실행하기 위한 새로운 GPU 바운드 태스크 유형들의 추가가 수행될 수 있다. GPU 작업 관리자에 추가되는 임의의 새로운 태스크 유형에 대해, 이 아키텍처는: 데이터를 초기화하고 인큐잉하기 위해 IMC 클라이언트와 인터페이싱하기 위한 래퍼; 입력 데이터 FIFO 큐; GPU 실행을 위한 프로세싱 스레드; 출력 결과들 FIFO 큐; 및 결과들을 IMC 클라이언트에게 게시하기 위한 결과들스레드를 포함할 수 있다.
도 4는 본 명세서에 개시된 모듈들에 대응하는 박스들을 도시한다. 태스크 유형 1은 왼쪽에 있고 태스크 유형 2에 대한 모든 박스들은 오른쪽에 있다. 최대한의 성능 효율 및 로드 밸런싱을 위해, 이 아키텍처는 신경 네트들(neural nets) 각각을 개별 GPU들에 피닝(pinning)하거나 데이터 병렬처리를 사용하여 단일 신경 네트를 위해 모든 GPU들을 사용함에 있어서 유연성이 있다. 이 아키텍처는 입력 데이터를 GPU들에 피드하는 동안 CPU들이 병목(bottleneck)으로 되는 것을 방지하기 위해 하나 이상의 CPU를 명시된 GPU들의 리스트에 할당할 수 있다.
일 예에서, 사용자는 주어진 신경 네트워크를 위해 사용될 GPU들의 리스트를 명시하고, 이 아키텍처는 입력 데이터를 동일한 배치들에서 자동 분할하고 그 배치들을 리스트에 명시된 모든 GPU들에 디스패치할 수 있다. 이것은 도 5에서 보여진다. 따라서, 데이터 병렬처리를 사용하는 GPU들의 개수가 스케일링될 수 있다.
본 명세서에 개시된 실시예들은 GPU를 충분히 이용하기 위해 다수의 웨이퍼 사이트들또는 위치들로부터의 입력 이미지 데이터가 동일한 배치에서 프로세싱될 수 있게 해줄 수 있다.
CPU-GPU 작업부하들 또는 태스크들의 혼합체(mix)는 본 명세서에 개시된 아키텍처의 실시예들을 사용하여 수행될 수 있다. 이 하이브리드 아키텍처는, 예를 들어, CPU 태스크, GPU 태스크, 및 CPU 태스크의 시퀀스를 실행할 수 있다. 이것은 노드당 불균일한 개수의 CPU들 및 GPU들에 대해 효율적인 프로세싱을 제공할 수 있다. 예를 들어, 노드에서 CPU들의 개수가 GPU들의 개수보다 많거나 적을 수 있으며, 데이터 프로세싱 시간들은 영향을 받지 않는다.
작업들은 병렬로 그리고 실시간으로 분배될 수 있다. 따라서, 이미지가 최소한의 작업 디스패치 레이턴시로 메모리에서 취득될 때 작업들이 다수의 노드들에 걸쳐 다수의 프로세서들(예컨대, CPU들 또는 GPU들)에 분배될 수 있다.
데이터를 메모리에 유지하는 대신에 입/출력 중간 데이터가 디스크로부터 판독되거나 디스크에 기입될 수 있다. 이것은 디스크 입/출력으로 인해 효율성에 영향을 미칠 수 있지만, 수용가능한 프로세싱 성능을 제공할 수 있다.
일 실시예에서, CPU 프로세싱을 위한 적어도 하나의 전용 노드 및/또는 GPU 프로세싱을 위한 적어도 하나의 전용 노드가 있다. 주어진 노드 내에서의 하이브리드 프로세싱을 갖는 대신에 하이브리드 프로세싱이 노드들에 걸쳐 발생한다. 따라서, GPU 바운드 태스크는 전용 GPU 노드에 디스패치되고, CPU 바운드 태스크는 전용 CPU 노드에 디스패치된다. 일 예에서, 모든 GPU 바운드 태스크들은 전용 GPU 노드에 디스패치되고 모든 CPU 바운드 태스크들은 전용 CPU 노드에 디스패치된다. 내부 통신 네트워크(예컨대, 인피니밴드)가 데이터 전송에 사용될 수 있다.
반도체 웨이퍼들에 대한 딥 러닝 기반 검사 및 계측 시스템들은 본 명세서에 개시된 아키텍처 실시예들에 의해 가능하게 될 수 있다. 따라서, 본 명세서에 개시된 실시예들은 검사 및 계측 시스템들에서 이용될 수 있다.
도 2는 GPU 작업 관리자 아키텍처의 실시예의 다이어그램이다. 도 2는 다수의 유형들의 GPU 기반 태스크들이 다수의 GPU 프로세서들을 사용하여 단일 작업 관리 인프라스트럭처 내에서 어떻게 실행될 수 있는지를 설명한다.
도 3은 다수의 GPU 태스크들을 실행하기 위한 GPU 작업 관리자 아키텍처의 실시예의 다른 다이어그램이다. 도 3은 작업에서의 다양한 유형들의 GPU 기반 태스크들을 핸들링하기 위한 내부 작업 디스패치 및 결과들 핸들링 큐들을 갖는 GPU 작업 관리자에 대한 다양한 소프트웨어 인터페이스들을 도시한다.
도 6은 GPU 작업 관리자 소프트웨어 스택의 다이어그램이다. 소프트웨어 스택은 워커 작업 관리자를 사용하여 워크플로(workflow)를 효율적으로 관리하는 계층화된 아키텍처일 수 있다.
도 7은 방법(200)의 플로차트이다. 방법(200)은, 반도체 검사 및 계측을 위한 것들과 같은, 고 대역폭, 하이브리드 프로세서 계산 시스템들을 위한 실시간 작업 분배 소프트웨어 아키텍처를 가능하게 해준다. 방법(200)은 확장가능하고 유연할 수 있으며, GPU 배칭을 사용할 수 있다.
방법(200)에서, 201에서, 입력 이미지 데이터와 같은, 입력 데이터가 마스터 노드에 수신된다. 입력 데이터는 반도체 검사 툴 또는 반도체 계측 툴로부터의 것일 수 있다. 일 예에서, 입력 데이터는 반도체 웨이퍼 또는 레티클에 관한 것이다. 입력 데이터는 광학 카메라 또는 전자 빔 스캐닝 시스템으로부터의 것일 수 있다. 이 소스들 각각은 대응하는 이미지 센서로부터의 다수의 데이터 채널들을 포함할 수 있다.
202에서, 입력 데이터는 마스터 노드를 사용하여 적어도 제1 작업으로 분할된다.
203에서, 제1 작업은, 마스터 노드를 사용하여, 마스터 노드와 전자 통신하는 복수의 워커 노드들 중 제1 워커 노드에 분배된다. 워커 노드들 각각은 워커 작업 관리자를 실행하는 적어도 하나의 CPU 및 CPU와 전자 통신하는 적어도 하나의 GPU를 포함한다. 워커 작업 관리자는 수신된 작업을 복수의 태스크들로 분할하도록 구성된다.
제1 워커 노드 내의 워커 작업 관리자를 사용하여, 204에서 제1 작업이 복수의 태스크로 분할된다.
205에서, 제1 작업에서의 태스크들 각각은 제1 워커 노드 내의 워커 작업 관리자를 사용하여 제1 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정된다.
206에서, 제1 작업에서의 태스크들은 제1 워커 노드 내의 워커 작업 관리자를 사용하여 추후 작업에서의 태스크들보다 우선순위화된다.
일 예에서, 입력 데이터는 마스터 노드를 사용하여 제2 작업으로 분할된다. 제2 작업은 마스터 노드를 사용하여 복수의 워커 노드들 중 제2 워커 노드에 분배된다. 제2 워커 노드 내의 워커 작업 관리자를 사용하여, 제2 작업이 복수의 태스크들로 분할된다. 제2 작업에서의 태스크들 각각은 제2 워커 노드 내의 워커 작업 관리자를 사용하여 제2 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정된다.
워커 작업 관리자들 각각은 딥 러닝 모델을 갖는 모듈을 포함할 수 있다. 딥 러닝 모델은 수신된 작업에서의 태스크들 각각을 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정하도록 구성된다. 딥 러닝 모델이 존재하면, 방법(100)은 딥 러닝 모델을 리트레이닝시키는 단계를 포함할 수 있다. 딥 러닝 모델은, 피처 검출 및 분류를 위해 이미지들을 프로세싱하도록 구성된, 신경 네트워크일 수 있다. 딥 러닝 모델은 트레이닝 동작으로부터 획득될 수 있다. 트레이닝 동안, 웨이퍼 또는 레티클로부터의 큰 입력 이미지 데이터 세트는 그 세트에서의 이미지 각각에 대한 원하는 출력 결과와 함께 신경 네트워크에 제시된다. 트레이닝 동작은 딥 러닝 소프트웨어 애플리케이션을 사용하여 완료될 수 있으며, 이 트레이닝의 결과는 모델이며, 이 모델은 이어서 임의의 입력 이미지 세트에 대한 원하는 출력을 생성하는 데 사용될 수 있다.
워커 작업 관리자들은 선입 선출 작업 큐 하에서 동작할 수 있다.
워커 작업 관리자는 수신된 작업에서의 태스크들 각각을 워커 노드 내의 CPU 중 하나 또는 GPU 중 하나에 배정하도록 구성될 수 있으며, 워커 작업 관리자는 태스크들의 완료 시간을 최소화하도록 태스크들을 배정한다.
입력 데이터는 동일한 배치들에서 GPU들에 분배될 수 있다.
입력 데이터는 다수의 웨이퍼 위치들로부터의 것일 수 있으며, 여기서 입력 데이터는 동일한 배치에서 프로세싱된다.
제1 작업은 병렬로 그리고 실시간으로 제1 워커 노드에 분배될 수 있다. 따라서, 입력 데이터가 메모리에서 취득될 때 제1 작업이 제1 워커 노드에 분배될 수 있다.
부가의 실시예는, 본 명세서에 개시된 바와 같이, 작업 분배를 위한 제어기 상에서 실행가능한 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체에 관한 것이다. 특히, 마스터 노드 또는 워커 노드는 실행가능 프로그램 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체를 갖는 전자 데이터 저장 매체에서의 메모리에 커플링될 수 있다. 컴퓨터-구현 방법은 본 명세서에 설명된 임의의 방법(들)의 임의의 단계(들)를 포함할 수 있다. 예를 들어, 마스터 노드, 워커 노드, 또는 이 시스템의 다른 부분들은 도 7의 단계들 중 일부 또는 전부를 수행하도록 프로그래밍될 수 있다. 전자 데이터 저장 매체에서의 메모리는 자기 또는 광학 디스크, 자기 테이프, 또는 본 기술분야에 공지된 임의의 다른 적합한 비일시적 컴퓨터 판독가능 매체와 같은 저장 매체일 수 있다.
프로그램 명령어들은, 그 중에서도, 프로시저 기반 기법들, 컴포넌트 기반 기법들, 및/또는 객체 지향 기법들을 포함하는, 다양한 방식들 중 임의의 것으로 구현될 수 있다. 예를 들어, 프로그램 명령어들은, 원하는 바에 따라, ActiveX 컨트롤들, C++ 객체들, JavaBeans, MFC(Microsoft Foundation Classes), SSE(Streaming SIMD Extension), 또는 다른 기술들 또는 방법론들을 사용하여 구현할 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "웨이퍼"는 일반적으로 반도체 또는 비-반도체 재료로 형성된 기판들을 지칭한다. 그러한 반도체 또는 비-반도체 재료의 예들은 단결정 실리콘, 갈륨 비화물, 및 인듐 인화물을 포함하지만, 이들로 제한되지 않는다. 그러한 기판들은 반도체 제조 설비들에서 흔히 발견되고 그리고/또는 프로세싱될 수 있다.
웨이퍼는 기판 상에 형성된 하나 이상의 층을 포함할 수 있다. 예를 들어, 그러한 층들은 레지스트, 유전체 재료, 및 도전성 재료를 포함할 수 있지만, 이들로 제한되지 않는다. 많은 상이한 유형들의 그러한 층들이 본 기술분야에 공지되어 있으며, 용어 웨이퍼는, 본 명세서에서 사용되는 바와 같이, 모든 유형들의 그러한 층들을 포함하는 웨이퍼를 포괄하는 것으로 의도된다.
웨이퍼 상에 형성되는 하나 이상의 층은 패터닝되거나 패터닝되지 않을 수 있다. 예를 들어, 웨이퍼는, 각각이 반복가능한 패터닝된 피처들을 갖는, 복수의 다이들을 포함할 수 있다. 그러한 재료 층들의 형성 및 프로세싱은 궁극적으로는 완성된 디바이스들을 결과할 수 있다. IC들과 같은 많은 상이한 유형들의 디바이스들이 웨이퍼 상에 형성될 수 있으며, 용어 웨이퍼는, 본 명세서에서 사용되는 바와 같이, 본 기술분야에 공지된 임의의 유형의 디바이스가 상부에 제조되고 있는 웨이퍼를 포괄하도록 의도된다. 본 명세서에서 사용되는 바와 같이, 용어 “칩"은 특정의 목적을 위해 설계된 IC들의 집합체를 포함할 수 있다.
실시예들이 웨이퍼들과 관련하여 본 명세서에서 설명되어 있지만, 실시예들이, 마스크 또는 포토마스크라고도 흔히 지칭될 수 있는, 레티클과 같은 다른 시료에 대해 사용될 수 있다는 것이 이해되어야 한다. 많은 상이한 유형들의 레티클들이 본 기술분야에 공지되어 있고, 용어들 "레티클", "마스크", 및 "포토마스크"는, 본 명세서에서 사용되는 바와 같이, 본 기술분야에 공지된 모든 유형들의 레티클들을 포괄하는 것으로 의도된다.
방법의 단계들 각각은 본 명세서에 설명된 바와 같이 수행될 수 있다. 방법들은 본 명세서에 설명된 프로세서 및/또는 컴퓨터 서브시스템(들) 또는 시스템(들)에 의해 수행될 수 있는 임의의 다른 단계(들)를 또한 포함할 수 있다. 단계들은, 본 명세서에 설명된 실시예들 중 임의의 것에 따라 구성될 수 있는, 하나 이상의 컴퓨터 시스템에 의해 수행될 수 있다. 그에 부가하여, 위에서 설명된 방법들은 본 명세서에서 설명된 시스템 실시예들 중 임의의 것에 의해 수행될 수 있다.
비록 본 개시내용이 하나 이상의 특정 실시예와 관련하여 설명되었지만, 본 개시내용의 범위를 벗어나지 않으면서 본 개시내용의 다른 실시예들이 이루어질 수 있다는 점이 이해될 것이다. 따라서, 본 개시내용은 첨부된 청구항들 및 그의 타당한 해석에 의해서만 제한되는 것으로 간주된다.

Claims (20)

  1. 시스템으로서,
    복수의 워커 노드들 - 상기 워커 노드들 각각은:
    워커 작업 관리자를 실행하는 적어도 하나의 CPU - 상기 워커 작업 관리자는 수신된 작업을 복수의 태스크들로 분할하도록 구성됨 -; 및
    상기 CPU와 전자 통신하는 적어도 하나의 GPU를 포함하며,
    상기 워커 작업 관리자들 각각은 상기 수신된 작업의 상기 태스크들 각각을 상기 워커 노드 내의 상기 CPU 중 하나 또는 상기 GPU 중 하나에 배정하도록 구성되고;
    상기 워커 작업 관리자들 각각은 상기 워커 노드 내의 상기 GPU 중 하나 대신에 상기 CPU 중 하나에 상기 태스크들 중 하나를 배정할지 또는 상기 워커 노드 내의 상기 CPU 중 하나 대신에 상기 GPU 중 하나에 상기 태스크들 중 하나를 배정할지를 결정하도록 구성됨 -; 및
    상기 복수의 워커 노드들과 전자 통신하는 마스터 노드 - 상기 마스터 노드는 반도체 웨이퍼 또는 레티클에 관한 입력 이미지 데이터를 수신하고, 상기 마스터 노드는:
    상기 입력 이미지 데이터를 적어도 제1 작업으로 분할하고;
    상기 제1 작업을 상기 워커 노드들 중 하나에 분배하도록 구성됨 -
    를 포함하고;
    상기 워커 작업 관리자들 각각은 또한, 추후 작업에서의 태스크들보다 상기 제1 작업에서의 상기 태스크들을 우선순위화하도록 구성되는 것인, 시스템.
  2. 제1항에 있어서, 상기 워커 노드들 중 하나에 상기 GPU보다 상기 CPU가 더 많이 있는 것인, 시스템.
  3. 제1항에 있어서, 상기 워커 노드들 중 하나에 상기 CPU보다 상기 GPU가 더 많이 있는 것인, 시스템.
  4. 제1항에 있어서, 상기 마스터 노드는 또한, 상기 입력 이미지 데이터를 제2 작업으로 분할하고 상기 제2 작업을 상기 워커 노드들 중 하나에 분배하도록 구성되는 것인, 시스템.
  5. 제1항에 있어서, 상기 워커 작업 관리자를 실행하는 상기 CPU와 전자 통신하는 상기 워커 노드들 중 하나 내의 다른 CPU를 더 포함하는, 시스템.
  6. 제1항에 있어서, 상기 마스터 노드와 전자 통신하는 적어도 하나의 CPU 워커 노드를 더 포함하고, 상기 CPU 워커 노드는 상기 GPU 중 어느 것도 갖지 않고 상기 CPU 중 하나 이상을 포함하며, 상기 CPU 워커 노드 내의 상기 CPU 중 하나가 상기 워커 작업 관리자를 실행하는 것인, 시스템.
  7. 제1항에 있어서, 상기 마스터 노드와 전자 통신하는 적어도 하나의 GPU 워커 노드를 더 포함하고, 상기 GPU 워커 노드는 상기 워커 작업 관리자를 실행하는 것 외에는 상기 CPU 중 어느 것도 갖지 않고 상기 GPU 중 하나 이상을 포함하는 것인, 시스템.
  8. 제1항에 있어서, 애플리케이션 프로그래밍 인터페이스를 사용하여 IMC 클라이언트와 통신하도록 구성된 인터페이스 계층을 더 포함하는, 시스템.
  9. 제1항에 있어서, 상기 워커 작업 관리자들 각각은 딥 러닝 모델을 갖는 모듈을 포함하고, 상기 딥 러닝 모델은 상기 수신된 작업에서의 상기 태스크들 각각을 상기 워커 노드 내의 상기 CPU 중 하나 또는 상기 GPU 중 하나에 배정하도록 구성되는 것인, 시스템.
  10. 제1항에 있어서, 상기 GPU와 전자 통신하는 신경 네트워크를 더 포함하는, 시스템.
  11. 제1항에 있어서, 상기 마스터 노드는 프로세싱 툴과 전자 통신하고, 상기 프로세싱 툴은 반도체 검사 툴 또는 반도체 계측 툴을 포함하는 것인, 시스템.
  12. 방법으로서,
    반도체 검사 툴 또는 반도체 계측 툴로부터 마스터 노드에서 입력 이미지 데이터를 수신하는 단계 - 상기 입력 이미지 데이터는 반도체 웨이퍼 또는 레티클에 관한 것임 -;
    상기 마스터 노드를 사용하여, 상기 입력 이미지 데이터를 적어도 제1 작업으로 분할하는 단계;
    상기 마스터 노드를 사용하여, 상기 제1 작업을 상기 마스터 노드와 전자 통신하는 복수의 워커 노드들 중 제1 워커 노드에 분배하는 단계 - 상기 워커 노드들 각각은:
    워커 작업 관리자를 실행하는 적어도 하나의 CPU - 상기 워커 작업 관리자는 수신된 작업을 복수의 태스크들로 분할하도록 구성됨 -; 및
    상기 CPU와 전자 통신하는 적어도 하나의 GPU를 포함함 -;
    상기 제1 워커 노드 내의 상기 워커 작업 관리자를 사용하여, 상기 제1 작업을 복수의 태스크들로 분할하는 단계;
    상기 제1 워커 노드 내의 상기 워커 작업 관리자를 사용하여, 상기 제1 작업에서의 상기 태스크들 각각을 상기 제1 워커 노드 내의 상기 CPU 중 하나 또는 상기 GPU 중 하나에 배정하는 단계; 및
    상기 제1 워커 노드 내의 상기 워커 작업 관리자를 사용하여, 상기 제1 작업에서의 상기 태스크들을 추후 작업에서의 태스크들보다 우선순위화하는 단계
    를 포함하는, 방법.
  13. 제12항에 있어서,
    상기 마스터 노드를 사용하여, 상기 입력 이미지 데이터를 제2 작업으로 분할하는 단계;
    상기 마스터 노드를 사용하여, 상기 제2 작업을 상기 복수의 워커 노드들 중 제2 워커 노드에 분배하는 단계;
    상기 제2 워커 노드 내의 상기 워커 작업 관리자를 사용하여, 상기 제2 작업을 복수의 태스크들로 분할하는 단계; 및
    상기 제2 워커 노드 내의 상기 워커 작업 관리자를 사용하여, 상기 제2 작업에서의 상기 태스크들 각각을 상기 제2 워커 노드 내의 상기 CPU 중 하나 또는 상기 GPU 중 하나에 배정하는 단계
    를 더 포함하는, 방법.
  14. 제12항에 있어서, 상기 워커 작업 관리자들 각각은 딥 러닝 모델을 갖는 모듈을 포함하고, 상기 딥 러닝 모델은 상기 수신된 작업에서의 상기 태스크들 각각을 상기 워커 노드 내의 상기 CPU 중 하나 또는 상기 GPU 중 하나에 배정하도록 구성되며, 상기 방법은 상기 딥 러닝 모델을 리트레이닝(retraining)시키는 단계
    를 더 포함하는 것인, 방법.
  15. 제12항에 있어서, 상기 워커 작업 관리자들은 선입 선출 작업 큐(first in first out job queue) 하에서 동작하는 것인, 방법.
  16. 제12항에 있어서, 상기 워커 작업 관리자는 상기 수신된 작업에서의 상기 태스크들 각각을 상기 워커 노드 내의 상기 CPU 중 하나 또는 상기 GPU 중 하나에 배정하도록 구성되고, 상기 워커 작업 관리자는 상기 태스크들의 완료 시간을 최소화하도록 상기 태스크들을 배정하는 것인, 방법.
  17. 제12항에 있어서, 상기 입력 이미지 데이터는 동일한 배치들에서(in equal batches) 상기 GPU들에 분배되는 것인, 방법.
  18. 제12항에 있어서, 상기 입력 이미지 데이터는 다수의 웨이퍼 위치들로부터의 것이고, 상기 입력 이미지 데이터는 동일한 배치에서(in a same batch) 프로세싱되는 것인, 방법.
  19. 제12항에 있어서, 상기 제1 작업은 병렬로 그리고 실시간으로 상기 제1 워커 노드에 분배되는 것인, 방법.
  20. 제19항에 있어서, 상기 입력 이미지 데이터가 메모리에서 취득될 때 상기 제1 작업이 상기 제1 워커 노드에 분배되는 것인, 방법.
KR1020197037694A 2017-05-23 2018-05-18 반도체 검사 및 계측 시스템들을 위한 확장가능하고 유연한 작업 분배 아키텍처 KR102606550B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762509927P 2017-05-23 2017-05-23
US62/509,927 2017-05-23
US15/978,626 2018-05-14
US15/978,626 US11237872B2 (en) 2017-05-23 2018-05-14 Semiconductor inspection and metrology systems for distributing job among the CPUs or GPUs based on logical image processing boundaries
PCT/US2018/033290 WO2018217545A1 (en) 2017-05-23 2018-05-18 Scalable and flexible job distribution architecture for semiconductor inspection and metrology systems

Publications (2)

Publication Number Publication Date
KR20200000451A true KR20200000451A (ko) 2020-01-02
KR102606550B1 KR102606550B1 (ko) 2023-11-24

Family

ID=64395866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197037694A KR102606550B1 (ko) 2017-05-23 2018-05-18 반도체 검사 및 계측 시스템들을 위한 확장가능하고 유연한 작업 분배 아키텍처

Country Status (5)

Country Link
US (1) US11237872B2 (ko)
KR (1) KR102606550B1 (ko)
CN (1) CN110612514A (ko)
TW (1) TWI782023B (ko)
WO (1) WO2018217545A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102266324B1 (ko) * 2020-02-28 2021-06-17 숭실대학교산학협력단 머신 러닝 실행 관리 플랫폼에서의 워커 노드 관리 방법 및 그를 위한 플랫폼 시스템
KR20210109407A (ko) * 2020-02-27 2021-09-06 숭실대학교산학협력단 학습에 의한 머신 러닝 실행 관리 플랫폼 시스템 및 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10888788B2 (en) * 2016-06-30 2021-01-12 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) control mode for playing specific tasks during gaming applications
CN109522101B (zh) * 2017-09-20 2023-11-14 三星电子株式会社 用于调度多个操作系统任务的方法、系统和/或装置
US10679333B2 (en) 2018-03-14 2020-06-09 Kla-Tencor Corporation Defect detection, classification, and process window control using scanning electron microscope metrology
CN111124656B (zh) * 2018-10-31 2023-09-15 伊姆西Ip控股有限责任公司 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质
KR102224487B1 (ko) * 2019-05-02 2021-03-08 숭실대학교산학협력단 머신 러닝 플랫폼 관리 시스템 및 방법
JP7326969B2 (ja) * 2019-07-30 2023-08-16 富士通株式会社 情報処理装置,ストレージシステム及びスケジューリングプログラム
CN112965809A (zh) * 2019-12-12 2021-06-15 深圳市优必选科技股份有限公司 深度学习任务处理系统和方法
US11714681B2 (en) * 2020-01-23 2023-08-01 Visa International Service Association Method, system, and computer program product for dynamically assigning an inference request to a CPU or GPU
US11604989B2 (en) * 2020-04-16 2023-03-14 Micron Technology, Inc. Ann training through processing power of parked vehicles
EP3992878B1 (en) * 2020-09-11 2023-08-09 Changxin Memory Technologies, Inc. Method and apparatus for processing wafer inspection task, system, and storage medium
WO2022118236A1 (en) * 2020-12-02 2022-06-09 Jet Blockchain Inc. Closely coupled hardware acceleration in a multi-processors environment
US20230004786A1 (en) * 2021-06-30 2023-01-05 Micron Technology, Inc. Artificial neural networks on a deep learning accelerator
CN113591398B (zh) * 2021-08-23 2023-05-23 北京邮电大学 基于深度强化学习的智能作业分批方法、装置及电子设备
DE112022004274T5 (de) * 2021-09-07 2024-08-14 Apple Inc. Dienstgüte-Techniken im verteilten Grafikprozessor
US12039368B2 (en) 2021-09-07 2024-07-16 Apple Inc. Priority inversion mitigation techniques
CN114374848B (zh) * 2021-12-20 2024-03-19 杭州当虹科技股份有限公司 一种视频编码优化方法和系统
CN116819911B (zh) * 2023-08-31 2023-10-31 光科芯图(北京)科技有限公司 掩模图案的优化方法、装置、曝光设备及存储介质
CN116962176B (zh) * 2023-09-21 2024-01-23 浪潮电子信息产业股份有限公司 一种分布式集群的数据处理方法、装置、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242619A1 (en) * 1997-09-17 2006-10-26 Synopsys, Inc. System And Method For Providing Defect Printability Analysis Of Photolithographic Masks With Job-Based Automation
US20120124591A1 (en) * 2010-11-17 2012-05-17 Nec Laboratories America, Inc. scheduler and resource manager for coprocessor-based heterogeneous clusters
KR20130064568A (ko) * 2011-12-08 2013-06-18 한국전자통신연구원 실시간 3차원 실 환경 복원장치 및 그 방법
US20140337823A1 (en) * 2013-04-03 2014-11-13 King.Com Limited Automatic generation of api classes
WO2017049496A1 (en) * 2015-09-23 2017-03-30 Intel Corporation Apparatus and method for local quantization for convolutional neural networks (cnns)

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614520B1 (en) 1997-12-18 2003-09-02 Kla-Tencor Corporation Method for inspecting a reticle
US6529621B1 (en) 1998-12-17 2003-03-04 Kla-Tencor Mechanisms for making and inspecting reticles
US6966047B1 (en) 2002-04-09 2005-11-15 Kla-Tencor Technologies Corporation Capturing designer intent in reticle inspection
KR101056142B1 (ko) 2004-01-29 2011-08-10 케이엘에이-텐코 코포레이션 레티클 설계 데이터의 결함을 검출하기 위한 컴퓨터로구현되는 방법
JP4904034B2 (ja) 2004-09-14 2012-03-28 ケーエルエー−テンカー コーポレイション レチクル・レイアウト・データを評価するための方法、システム及び搬送媒体
JP5134188B2 (ja) 2004-10-15 2013-01-30 ケーエルエー−テンカー コーポレイション 試料上の欠陥を分析する装置
US7024339B1 (en) 2004-10-18 2006-04-04 Kla-Tencor Technologies Corporation Full swath analysis
US7181368B1 (en) 2004-10-18 2007-02-20 Kla-Tencor Technologies Corporation Status polling
US7382940B1 (en) 2004-10-18 2008-06-03 Kla-Tencor Corporation Fast bus image coprocessing
US7149642B1 (en) 2004-10-18 2006-12-12 Kla-Tencor Technologies Corporation Programmable image computer
US7602958B1 (en) 2004-10-18 2009-10-13 Kla-Tencor Corporation Mirror node process verification
US7440640B1 (en) 2004-10-18 2008-10-21 Kla-Tencor Corporation Image data storage
US7555409B1 (en) 2004-10-18 2009-06-30 Kla-Tencor Corporation Daisy chained topology
US8823969B1 (en) 2004-10-18 2014-09-02 Kla-Tencor Corporation Image processing architecture
US7076390B1 (en) 2004-10-18 2006-07-11 Kla-Tencor Technologies Corporation Memory load balancing
EP1982160A4 (en) 2006-02-09 2016-02-17 Kla Tencor Tech Corp METHOD AND SYSTEMS FOR DETERMINING A WAFER FEATURE
US7691549B1 (en) 2007-02-15 2010-04-06 Kla-Tencor Technologies Corporation Multiple exposure lithography technique and method
US7796804B2 (en) 2007-07-20 2010-09-14 Kla-Tencor Corp. Methods for generating a standard reference die for use in a die to standard reference die inspection and methods for inspecting a wafer
US8126255B2 (en) 2007-09-20 2012-02-28 Kla-Tencor Corp. Systems and methods for creating persistent data for a wafer and for using persistent data for inspection-related functions
EP2457251A4 (en) 2009-07-22 2017-11-08 KLA-Tencor Corporation Dark field inspection system with ring illumination
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
WO2013019563A1 (en) * 2011-07-29 2013-02-07 Kla-Tencor Corporation Method and system for visualization of semiconductor wafer inspection data
US20130093776A1 (en) * 2011-10-14 2013-04-18 Microsoft Corporation Delivering a Single End User Experience to a Client from Multiple Servers
US9222771B2 (en) 2011-10-17 2015-12-29 Kla-Tencor Corp. Acquisition of information for a construction site
US8754972B2 (en) 2012-02-01 2014-06-17 Kla-Tencor Corporation Integrated multi-channel analog front end and digitizer for high speed imaging applications
US8887056B2 (en) 2012-08-07 2014-11-11 Advanced Micro Devices, Inc. System and method for configuring cloud computing systems
US9576861B2 (en) 2012-11-20 2017-02-21 Kla-Tencor Corporation Method and system for universal target based inspection and metrology
US9222895B2 (en) 2013-02-25 2015-12-29 Kla-Tencor Corp. Generalized virtual inspector
WO2014143067A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Work stealing in heterogeneous computing systems
US9355208B2 (en) 2013-07-08 2016-05-31 Kla-Tencor Corp. Detecting defects on a wafer
US10127652B2 (en) * 2014-02-06 2018-11-13 Kla-Tencor Corp. Defect detection and classification based on attributes determined from a standard reference image
US10579435B2 (en) * 2014-02-28 2020-03-03 Pivotal Software, Inc. Executing a foreign program on a parallel computing system
JP2015184023A (ja) * 2014-03-20 2015-10-22 株式会社東芝 欠陥検査方法
US9262821B2 (en) 2014-05-12 2016-02-16 Kla-Tencor Corp. Inspection recipe setup from reference image variation
US10747830B2 (en) 2014-11-21 2020-08-18 Mesh Labs Inc. Method and system for displaying electronic information
CN104536937B (zh) * 2014-12-30 2017-10-31 深圳先进技术研究院 基于cpu‑gpu异构集群的大数据一体机实现方法
KR102354992B1 (ko) * 2015-03-02 2022-01-24 삼성전자주식회사 양안 시차 영상에 대한 타일 기반 렌더링 방법 및 장치
US10360063B2 (en) * 2015-09-23 2019-07-23 Qualcomm Incorporated Proactive resource management for parallel work-stealing processing systems
US10186026B2 (en) 2015-11-17 2019-01-22 Kla-Tencor Corp. Single image detection
US9965901B2 (en) 2015-11-19 2018-05-08 KLA—Tencor Corp. Generating simulated images from design information
US9916965B2 (en) 2015-12-31 2018-03-13 Kla-Tencor Corp. Hybrid inspectors
US11580375B2 (en) 2015-12-31 2023-02-14 Kla-Tencor Corp. Accelerated training of a machine learning based model for semiconductor applications
US10648924B2 (en) 2016-01-04 2020-05-12 Kla-Tencor Corp. Generating high resolution images from low resolution images for semiconductor applications
CN105677486B (zh) * 2016-01-08 2019-03-22 上海交通大学 数据并行处理方法及系统
US10360477B2 (en) 2016-01-11 2019-07-23 Kla-Tencor Corp. Accelerating semiconductor-related computations using learning based models
US10181185B2 (en) 2016-01-11 2019-01-15 Kla-Tencor Corp. Image based specimen process control
US10043261B2 (en) 2016-01-11 2018-08-07 Kla-Tencor Corp. Generating simulated output for a specimen
US10277911B2 (en) * 2016-01-22 2019-04-30 Wowza Media Systems, LLC Video processing workload management
WO2017201023A1 (en) * 2016-05-20 2017-11-23 Google Llc Machine learning methods and apparatus related to predicting motion(s) of object(s) in a robot's environment based on image(s) capturing the object(s) and based on parameter(s) for future robot movement in the environment
US10395356B2 (en) 2016-05-25 2019-08-27 Kla-Tencor Corp. Generating simulated images from input images for semiconductor applications
US10346740B2 (en) 2016-06-01 2019-07-09 Kla-Tencor Corp. Systems and methods incorporating a neural network and a forward physical model for semiconductor applications
US10195531B2 (en) * 2016-06-30 2019-02-05 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) personal assistant
US11580398B2 (en) 2016-10-14 2023-02-14 KLA-Tenor Corp. Diagnostic systems and methods for deep learning models configured for semiconductor applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242619A1 (en) * 1997-09-17 2006-10-26 Synopsys, Inc. System And Method For Providing Defect Printability Analysis Of Photolithographic Masks With Job-Based Automation
US20120124591A1 (en) * 2010-11-17 2012-05-17 Nec Laboratories America, Inc. scheduler and resource manager for coprocessor-based heterogeneous clusters
KR20130064568A (ko) * 2011-12-08 2013-06-18 한국전자통신연구원 실시간 3차원 실 환경 복원장치 및 그 방법
US20140337823A1 (en) * 2013-04-03 2014-11-13 King.Com Limited Automatic generation of api classes
WO2017049496A1 (en) * 2015-09-23 2017-03-30 Intel Corporation Apparatus and method for local quantization for convolutional neural networks (cnns)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210109407A (ko) * 2020-02-27 2021-09-06 숭실대학교산학협력단 학습에 의한 머신 러닝 실행 관리 플랫폼 시스템 및 방법
KR102266324B1 (ko) * 2020-02-28 2021-06-17 숭실대학교산학협력단 머신 러닝 실행 관리 플랫폼에서의 워커 노드 관리 방법 및 그를 위한 플랫폼 시스템

Also Published As

Publication number Publication date
KR102606550B1 (ko) 2023-11-24
US20180341525A1 (en) 2018-11-29
TWI782023B (zh) 2022-11-01
WO2018217545A1 (en) 2018-11-29
US11237872B2 (en) 2022-02-01
TW201907297A (zh) 2019-02-16
CN110612514A (zh) 2019-12-24

Similar Documents

Publication Publication Date Title
KR102606550B1 (ko) 반도체 검사 및 계측 시스템들을 위한 확장가능하고 유연한 작업 분배 아키텍처
US7953507B2 (en) Method and system for intelligent automated reticle managment
US10204290B2 (en) Defect review sampling and normalization based on defect and design attributes
US20210382754A1 (en) Serverless computing architecture for artificial intelligence workloads on edge for dynamic reconfiguration of workloads and enhanced resource utilization
US7257459B1 (en) Method and apparatus for scheduling pilot lots
JP2021518597A (ja) 低解像度画像における欠陥検出のためのニューラルネットワークのトレーニング
JP2023514891A (ja) 分散型製品欠陥分析システム、方法及びコンピュータ可読記憶媒体
JP2006060226A5 (ko)
US9223307B1 (en) Method for scheduling single-arm cluster tools with wafer revisiting and residency time constraints
US20210089012A1 (en) Method and system for lot-tool assignment
DE102014222705A1 (de) Verfahren, Speichermedium und System zur Steuerung der Verarbeitung von Losen von Werkstücken
CN103608776A (zh) 异构型处理设备上的动态工作划分
EP3594905A1 (en) Scalable parallel tessellation
TW201939634A (zh) 使用電子束檢測及具有即時情報之深度學習以減少損害的缺陷探索
US20200311569A1 (en) Low latency and high throughput inference
US10522427B2 (en) Techniques providing semiconductor wafer grouping in a feed forward process
US20210365804A1 (en) Dynamic ai model transfer reconfiguration to minimize performance, accuracy and latency disruptions
Shikalgar et al. 300 mm wafer fabrication line simulation model
WO2023138863A1 (en) Method for operating laboratory system and laboratory system
US9081306B2 (en) Method of optimizing lithography tools utilization
TWI584401B (zh) 光刻設備及物品的製造方法
Wang et al. Effective OHT dispatching for differentiated material handling services in 300mm wafer foundry
WO2022052523A1 (zh) 晶圆检测任务的处理方法、装置、系统及存储介质
US11748266B1 (en) Special tracking pool enhancement for core local cache address invalidates
Hsu et al. The integration of shop floor control in wafer fabrication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant