KR102158051B1 - Computer-enabled cloud-based ai computing service method - Google Patents
Computer-enabled cloud-based ai computing service method Download PDFInfo
- Publication number
- KR102158051B1 KR102158051B1 KR1020180074043A KR20180074043A KR102158051B1 KR 102158051 B1 KR102158051 B1 KR 102158051B1 KR 1020180074043 A KR1020180074043 A KR 1020180074043A KR 20180074043 A KR20180074043 A KR 20180074043A KR 102158051 B1 KR102158051 B1 KR 102158051B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- unit
- operation time
- server
- artificial intelligence
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법에 관한 것으로, (a) 제1 및 제2 행렬들 각각의 형상과 크기 및 서버의 개수를 기초로 행렬 곱셈 연산을 위한 서버 레이아웃을 결정하는 단계, (b) 상기 서버 레이아웃을 기초로 상기 제1 및 제2 행렬들을 제1 및 제2 블록 기반의 파티션들로 분할하는 단계, (c) 상기 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출하는 단계 및 (d) 상기 단위 연산 시간을 기초로 상기 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측하는 단계를 포함한다.The present invention relates to a computer-executable cloud-based artificial intelligence operation service method, wherein (a) determining a server layout for a matrix multiplication operation based on the shape and size of each of the first and second matrices and the number of servers. Step, (b) dividing the first and second matrices into first and second block-based partitions based on the server layout, (c) distributing to the first and second block-based partitions Calculating a unit operation time by applying a matrix characteristic, and (d) predicting a total operation time required for a multiplication operation of the first and second matrices based on the unit operation time.
Description
본 발명은 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 기술에 관한 것으로, 보다 상세하게는 행렬 곱셈을 수행하는 서버의 개수에 따라 변화하는 연산 성능을 예측할 수 있는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법에 관한 것이다.The present invention relates to a computer-executable cloud-based artificial intelligence operation service technology, and more particularly, a computer-executable cloud-based artificial intelligence operation service capable of predicting computational performance that changes according to the number of servers performing matrix multiplication. It's about how.
최근 하드웨어 및 소프트웨어 시스템 기술의 향상은 과거에 불가능했던 대규모 데이터 집합의 처리를 가능하게 만들었다. 시스템들은 증가하는 빅데이터 분석 어플리케이션들의 수를 수용하기 위하여 운영 작업들을 통해 오버헤드를 줄임으로써 확장성과 내결함성을 제공하는 클라우드 컴퓨팅 환경을 점점 더 많이 적용하고 있다. 클라우드 컴퓨팅 서비스는 다양한 인스턴스에 고유한 하드웨어 구성을 제공하고, 많은 빅데이터 처리 소프트웨어 플랫폼은 이러한 리소스를 스케일 아웃 방식으로 사용할 수 있다. Recent advances in hardware and software system technology have made it possible to process large data sets that were not possible in the past. Systems are increasingly applying cloud computing environments that provide scalability and fault tolerance by reducing overhead through operational tasks to accommodate the increasing number of big data analysis applications. Cloud computing services provide unique hardware configurations for various instances, and many big data processing software platforms can use these resources in a scale-out manner.
행렬 곱셈 작업은 많은 기계 학습 알고리즘에서 중요한 커널 작업에 해당하지만, 분산 클라우드 컴퓨팅 환경에서 해당 작업에 소요되는 시간이나 해당 작업 완료에 필요한 인스턴스의 수를 정확히 예측하기는 매우 어려운 작업에 해당할 수 있다. 행렬 곱셈 작업은 클라우드 환경에서 비용 효율성을 유지하기 위해 오버헤드를 예측하는 작업을 필수적으로 수행할 필요가 있다.Matrix multiplication is an important kernel task in many machine learning algorithms, but it can be a very difficult task to accurately predict the time required for the task or the number of instances required to complete the task in a distributed cloud computing environment. The matrix multiplication operation is required to predict the overhead in order to maintain cost efficiency in the cloud environment.
본 발명의 일 실시예는 행렬 곱셈을 수행하는 서버의 개수에 따라 변화하는 연산 성능을 예측할 수 있는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법을 제공하고자 한다.An embodiment of the present invention is to provide a computer-executable, cloud-based artificial intelligence computation service method capable of predicting computational performance that changes according to the number of servers performing matrix multiplication.
본 발명의 일 실시예는 작업 서버의 개수를 기초로 제1 및 제2 행렬들의 형상들에 맞게 적어도 하나의 작업 서버를 매칭시켜 서버 레이아웃을 결정할 수 있는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법을 제공하고자 한다.An embodiment of the present invention is a computer-executable cloud-based artificial intelligence operation service method capable of determining a server layout by matching at least one work server according to the shapes of the first and second matrices based on the number of work servers Want to provide.
본 발명의 일 실시예는 단위 연산 시간에 성능 예측 모델의 작업 서버의 개수에 대한 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 적용하여 전체 연산 시간을 예측할 수 있는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법을 제공하고자 한다.An embodiment of the present invention is a computer-executable cloud-based artificial capable of predicting the total computation time by applying the ratio of the number of job servers included in the server layout to the number of job servers of the performance prediction model to the unit computation time. We intend to provide an intelligent operation service method.
실시예들 중에서, 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법은 (a) 제1 및 제2 행렬들 각각의 형상을 기초로 행렬 곱셈 연산을 위한 서버 레이아웃(Layout)을 결정하는 단계, (b) 상기 서버 레이아웃을 기초로 상기 제1 및 제2 행렬들을 제1 및 제2 블록 기반의 파티션(Partition)들로 분할하는 단계, (c) 상기 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출하는 단계 및 (d) 상기 단위 연산 시간을 기초로 상기 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측하는 단계를 포함한다.Among the embodiments, the computer-executable cloud-based artificial intelligence operation service method includes the steps of (a) determining a server layout for matrix multiplication based on the shapes of each of the first and second matrices, (b ) Dividing the first and second matrices into first and second block-based partitions based on the server layout, (c) a distribution matrix for the first and second block-based partitions Calculating a unit operation time by applying a characteristic, and (d) predicting a total operation time required for a multiplication operation of the first and second matrices based on the unit operation time.
상기 (a) 단계는 복수의 서버들 중에서 상기 제1 및 제2 행렬들 간의 행렬 곱셈 연산의 특정 조건을 충족시키는 적어도 하나의 작업 서버를 결정하고 작업 서버의 개수를 기초로 상기 제1 및 제2 행렬들의 형상들에 맞게 상기 적어도 하나의 작업 서버를 매칭시켜 상기 서버 레이아웃을 결정할 수 있다.The step (a) determines at least one job server that satisfies a specific condition of a matrix multiplication operation between the first and second matrices among a plurality of servers, and the first and second job servers based on the number of job servers. The server layout may be determined by matching the at least one job server according to the shapes of the matrices.
상기 (b) 단계는 상기 제1 및 제2 행렬들 각각에 대해 상기 작업 서버의 개수를 기초로 상기 제1 및 제2 블록 기반의 파티션들로 분할할 수 있다.In the step (b), each of the first and second matrices may be divided into partitions based on the first and second blocks based on the number of the job servers.
상기 (c) 단계는 상기 제1 및 제2 블록 기반 파티션들을 서로 연관시켜 상기 서버 레이아웃을 기초로 상기 적어도 하나의 작업 서버에 할당하고 상기 적어도 하나의 작업 서버에서의 연산 시간을 이용하여 상기 단위 연산 시간을 산출할 수 있다.In the step (c), the first and second block-based partitions are associated with each other and allocated to the at least one work server based on the server layout, and the unit operation is performed using the operation time in the at least one work server. Time can be calculated.
상기 (c) 단계는 상기 적어도 하나의 작업 서버에 할당된 상기 제1 블록 기반 파티션에 대한 행의 크기와 열의 크기 및 제2 블록 기반 파티션에 대한 열의 크기를 기초로 성능 예측 모델을 통해 상기 단위 연산 시간을 산출할 수 있다.In the step (c), the unit operation is performed through a performance prediction model based on a row size and a column size for the first block-based partition allocated to the at least one task server, and a column size for a second block-based partition. Time can be calculated.
상기 (c) 단계는 성능 예측 모델의 작업 서버의 개수에 대한 상기 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 기초로 상기 분산 행렬 특성을 결정하는 단계를 포함할 수 있다.The step (c) may include determining the characteristics of the distribution matrix based on a ratio of the number of job servers included in the server layout to the number of job servers in the performance prediction model.
상기 (d) 단계는 상기 단위 연산 시간에 상기 성능 예측 모델의 작업 서버의 개수에 대한 상기 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 적용하여 상기 전체 연산 시간을 예측할 수 있다.In step (d), the total computation time may be predicted by applying a ratio of the number of job servers included in the server layout to the number of job servers of the performance prediction model to the unit computation time.
실시예들 중에서, 클라우드 기반의 인공지능 연산 서비스 방법은 (a) 제곱승으로 구성된 서버의 개수를 기초로 곱셈 연산을 위한 제1 및 제2 행렬들을 제1 및 제2 블록 기반 파티션(Partition)들로 분할하는 단계, (b) 상기 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출하는 단계 및 (c) 상기 단위 연산 시간을 기초로 상기 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측하는 단계를 포함한다.Among the embodiments, the cloud-based artificial intelligence operation service method includes: (a) first and second matrices for multiplication operations based on the number of servers composed of a power of squares are first and second block-based partitions. Dividing by, (b) calculating a unit operation time by applying a variance matrix characteristic to the first and second block-based partitions, and (c) the first and second operation times based on the unit operation time. And predicting the total operation time required for the multiplication operation of matrices.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment should include all of the following effects or only the following effects, it should not be understood that the scope of the rights of the disclosed technology is limited thereby.
본 발명의 일 실시예에 따른 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법은 작업 서버의 개수를 기초로 제1 및 제2 행렬들의 형상들에 맞게 적어도 하나의 작업 서버를 매칭시켜 서버 레이아웃을 결정할 수 있다.The computer-executable cloud-based artificial intelligence operation service method according to an embodiment of the present invention determines a server layout by matching at least one work server according to the shapes of the first and second matrices based on the number of work servers. I can.
본 발명의 일 실시예에 따른 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법은 단위 연산 시간에 성능 예측 모델의 작업 서버의 개수에 대한 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 적용하여 전체 연산 시간을 예측할 수 있다.The computer-executable cloud-based artificial intelligence computation service method according to an embodiment of the present invention applies a ratio of the number of job servers included in the server layout to the number of job servers of the performance prediction model to a unit computation time You can predict the computation time.
도 1은 본 발명의 일 실시예에 따른 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 인공지능 연산 서비스 장치를 나타내는 블록도이다.
도 3은 도 1에 있는 인공지능 연산 서비스 장치에서 수행되는 인공지능 연산 서비스 제공 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 인공지능 연산 서비스 장치에서 블록 기반의 분산 행렬 곱셈이 수행되는 과정을 설명하는 예시도이다.
도 5는 도 1에 있는 인공지능 연산 서비스 장치에서 성능 예측 모델을 생성하는 과정을 설명하는 예시도이다.
도 6은 도 1에 있는 인공지능 연산 서비스 장치에서 서로 다른 서버 레이아웃을 기초로 행렬 곱셈에 대한 전체 연산 시간을 예측하는 과정을 설명하는 예시도이다.1 is a diagram illustrating a cloud-based artificial intelligence operation service system capable of performing a computer according to an embodiment of the present invention.
FIG. 2 is a block diagram showing the artificial intelligence operation service device of FIG. 1.
3 is a flowchart illustrating a process of providing an artificial intelligence operation service performed by the artificial intelligence operation service device of FIG. 1.
4 is an exemplary diagram illustrating a process of performing block-based variance matrix multiplication in the artificial intelligence operation service apparatus of FIG. 1.
5 is an exemplary diagram illustrating a process of generating a performance prediction model in the artificial intelligence operation service device of FIG. 1.
FIG. 6 is an exemplary view illustrating a process of predicting a total operation time for matrix multiplication based on different server layouts in the artificial intelligence operation service apparatus of FIG. 1.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is merely an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiments can be modified in various ways and have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only those effects, the scope of the present invention should not be understood as being limited thereto.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present application should be understood as follows.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from other components, and the scope of rights is not limited by these terms. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that although it may be directly connected to the other component, another component may exist in the middle. On the other hand, when it is mentioned that a certain component is "directly connected" to another component, it should be understood that no other component exists in the middle. On the other hand, other expressions describing the relationship between the constituent elements, that is, "between" and "just between" or "neighboring to" and "directly neighboring to" should be interpreted as well.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions are to be understood as including plural expressions unless the context clearly indicates otherwise, and terms such as “comprise” or “have” refer to implemented features, numbers, steps, actions, components, parts, or It is to be understood that it is intended to designate that a combination exists and does not preclude the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (for example, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step has a specific sequence clearly in context. Unless otherwise stated, it may occur differently from the stated order. That is, each of the steps may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.The present invention can be embodied as computer-readable codes on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the field to which the present invention belongs, unless otherwise defined. Terms defined in commonly used dictionaries should be construed as having meanings in the context of related technologies, and cannot be construed as having an ideal or excessive formal meaning unless explicitly defined in the present application.
행렬 곱셈(Matrix Multiplication)에 대한 성능 예측은 클라우드 컴퓨팅 환경에서 행렬 곱셈에 소요되는 시간을 산출함으로써 수행될 수 있다. 즉, 임의의 행렬들 간의 곱셈에 대한 성능을 예측하는 방법은 성능 예측 모델을 생성하고 성능 예측 모델을 이용하여 행렬 곱셈에 대한 소요 시간을 예측하는 것에 해당할 수 있다. 성능 예측 모델은 행렬 곱셈의 연산 시간에 가장 큰 영향을 미치는 행렬 특성을 입력 데이터로 하고 해당 행렬 특성을 가진 행렬들 간의 행렬 곱셈에 소요되는 예상 시간을 출력 데이터로 하는 학습 데이터들을 기계 학습하여 생성된 학습 결과에 해당할 수 있다.Performance prediction for matrix multiplication may be performed by calculating a time required for matrix multiplication in a cloud computing environment. That is, a method of predicting performance for multiplication between arbitrary matrices may correspond to generating a performance prediction model and predicting a time required for matrix multiplication by using the performance prediction model. The performance prediction model is generated by machine learning training data that uses the matrix characteristic that has the greatest influence on the operation time of matrix multiplication as input data and the estimated time required for matrix multiplication between matrices with the corresponding matrix characteristic as output data. May correspond to learning outcomes.
행렬 곱셈 성능 예측은 핵심적인 구성이라고 할 수 있는 성능 예측 모델 구축을 통해 수행될 수 있고, 학습 데이터 집합 생성 단계, 특징 추출 단계 및 모델링 작업 단계로 구성될 수 있으며, 각 단계별로 수행되는 동작은 다음과 같다.Matrix multiplication performance prediction can be performed by building a performance prediction model, which can be called a core configuration, and can be composed of a training data set generation step, a feature extraction step, and a modeling work step, and the operations performed in each step are as follows: Same as
1) 학습 데이터 집합 생성 단계1) Steps to create training data set
학습 데이터 집합 생성 단계에서 행렬 곱셈 성능 예측은 성능 예측 모델을 구축하기 위해 다양한 형상과 크기의 행렬 곱셈에 관한 프로파일링을 수행할 수 있다. 보다 구체적으로, 행렬 곱셈 성능 예측은 학습에 사용될 학습 데이터를 생성하기 위하여 행렬 곱셈의 다양한 유형들에 속하는 행렬 곱셈 작업을 생성할 수 있다. 행렬 곱셈 성능 예측은 모든 형상과 크기의 행렬들을 처리하기 위해 행렬 곱셈 작업에 대해 왼쪽 및 오른쪽 행렬들 간의 행렬 곱셈 연산에 소요되는 예상 연산시간을 포함하는 프로파일을 수집하여 학습 프로파일링을 수행할 수 있다. In the process of generating a training data set, matrix multiplication performance prediction may perform profiling on matrix multiplication of various shapes and sizes to construct a performance prediction model. More specifically, the matrix multiplication performance prediction may generate matrix multiplication tasks belonging to various types of matrix multiplication in order to generate training data to be used for training. For matrix multiplication performance prediction, to process matrices of all shapes and sizes, learning profiling can be performed by collecting a profile including an estimated operation time required for matrix multiplication operations between left and right matrices for a matrix multiplication operation. .
행렬 곱셈 작업은 왼쪽 및 오른쪽 행렬의 형상과 크기에 따라 정사각형 행렬들 간의 곱셈(square X square), 길고 얇은 직사각형 행렬과 짧고 넓은 직사각형 행렬 간의 곱셈(long-thin X short-wide) 및 짧고 넓은 직사각형 행렬과 길고 얇은 직사각형 행렬 간의 곱셈(short-wide X long-thin)으로 크게 분류될 수 있다. 또한, 행렬 곱셈 성능 예측은 행렬 곱셈에 소요되는 연산시간 측정에 있어서 JSON 형식의 다양한 실행 지표들을 제공하는 Apache Spark web UI REST API를 사용할 수 있으며, 반드시 이에 한정되지 않고, 다양한 분산 인공지능 연산 프로그램을 사용할 수 있다.Matrix multiplication operations include multiplication between square matrices (square X square), long-thin rectangular matrices and short-wide rectangular matrices (long-thin X short-wide), and short and wide rectangular matrices depending on the shape and size of the left and right matrices. And can be broadly classified as a multiplication between a long and thin rectangular matrix (short-wide X long-thin). In addition, for matrix multiplication performance prediction, Apache Spark web UI REST API, which provides various execution indicators in JSON format, can be used to measure the computation time required for matrix multiplication, and is not necessarily limited to this, and various distributed artificial intelligence computation programs are used. Can be used.
행렬 곱셈 성능 예측은 서로 다른 용량을 가진 다양한 클라우드 컴퓨팅 인스턴스(instance)들에 대해 최적의 성능을 얻기 위해 GPU 장치를 사용하는 인스턴스에서는 행렬 곱셈을 수행할 때 NVBLAS 라이브러리(Library)를 사용하고 CPU 장치를 사용하는 인스턴스의 경우 OpenBLAS를 사용할 수 있다. 또한, 행렬 곱셈 성능 예측은 Spark가 하드웨어 최적화 선형 대수 라이브러리와 상호 작용할 수 있도록 netlib-java library를 사용할 수 있다. 행렬 곱셈 성능 예측은 반드시 이에 한정되지 않고 다양한 분산 인공지능 연산 프로그램을 사용할 수 있다.Matrix multiplication performance prediction is performed using the NVBLAS library when performing matrix multiplication in instances that use GPU devices to obtain optimal performance for various cloud computing instances with different capacities. In the case of an instance to be used, OpenBLAS can be used. Also, for matrix multiplication performance prediction, you can use the netlib-java library to allow Spark to interact with the hardware-optimized linear algebra library. The matrix multiplication performance prediction is not necessarily limited to this, and various distributed artificial intelligence calculation programs can be used.
2) 특징 추출 단계2) Feature extraction step
분산 컴퓨팅 환경에서의 행렬 곱셈의 오버헤드(overhead)는 다양한 자원들에 영향을 받을 수 있다. 행렬 곱셈 성능 측정은 다양한 오버헤드를 처리하기 위해 입력 행렬 블록들의 차원(dimension)과 곱셈(product)을 사용할 수 있고, 예를 들어, lr, lc, rc, lr*rc, lr*lc, lc*rc, lr*lc+lc*rc 및 lr*lc*rc 등을 행렬 곱셈 성능을 모델링하기 위한 행렬 특성들로서 사용할 수 있다. 여기에서, lr*rc는 출력 행렬의 크기를 나타내고, lr*lr 및 lc*rc는 각각 네트워크 오버헤드 및 입출력 디스크 오버헤드에 영향을 미치는 왼쪽 및 오른쪽 행렬 블록의 크기를 나타낼 수 있다. lr*lc*rc는 행렬 곱셈에서 수행되는 곱셈 연산의 총 수를 나타낼 수 있다.The overhead of matrix multiplication in a distributed computing environment may be affected by various resources. Matrix multiplication performance measurement can use the dimensions and products of the input matrix blocks to handle various overheads. For example, lr, lc, rc, lr*rc, lr*lc, lc* rc, lr*lc+lc*rc, and lr*lc*rc can be used as matrix properties for modeling matrix multiplication performance. Here, lr*rc represents the size of the output matrix, and lr*lr and lc*rc can represent the sizes of left and right matrix blocks that affect network overhead and I/O disk overhead, respectively. lr*lc*rc may represent the total number of multiplication operations performed in matrix multiplication.
3) 모델링 작업 단계3) Modeling work steps
모델링 작업 단계에서, 행렬 곱셈 성능 예측은 다양한 행렬들을 곱하는 성능을 예측할 수 있는 성능 예측 모델을 구축할 수 있다. 모델링 작업 단계는 모델 구축 단계 및 하이퍼 파라미터(hyper-parameter) 검색 단계로 구성될 수 있다. 행렬 곱셈 성능 예측은 모델 구축 단계를 위해 GB(Gradient Boost) regressor를 사용할 수 있고, GB 방법(method)에 대한 최적의 파라미터들을 찾기 위해 베이지안 최적화(Bayesian Optimization)를 사용할 수 있다.In the modeling operation stage, matrix multiplication performance prediction can build a performance prediction model capable of predicting the performance of multiplying various matrices. The modeling work step may consist of a model building step and a hyper-parameter search step. For matrix multiplication performance prediction, a gradient boost (GB) regressor can be used for a model building step, and Bayesian Optimization can be used to find optimal parameters for a GB method.
GB 방법은 분류 및 회귀에 대한 유연한 비모수 통계적 학습 접근법이다. GB 방법의 주된 아이디어는 특징들 간의 복잡하고 비선형적인 상호작용들을 모델링하기 위해 점진적으로 간단한 선형 관계에만 일반적으로 적용할 수 있는 여러 개의 약한 학습기를 결합하는 것이다. GB 모델은 정방향 단계별 패턴으로 되어 있고, 각 단계에서 새로운 약한 학습기 모델이 현재 모델의 나머지 부분에 적용되며, GB 모델은 이전 반복에 대한 오류를 수정하는데 더 중점을 둘 수 있다.The GB method is a flexible nonparametric statistical learning approach to classification and regression. The main idea of the GB method is to gradually combine several weak learners that are generally applicable only to simple linear relationships to model complex and nonlinear interactions between features. The GB model has a positive step-by-step pattern, at each step a new weak learner model is applied to the rest of the current model, and the GB model can focus more on correcting errors for previous iterations.
성능 예측 모델을 구축할 때 모델 파라미터들을 적절하게 설정하는 것이 예측 품질을 향상시키는데 매우 중요할 수 있다. 랜덤워크(random walk), 그리드 기반 검색(grid based search) 및 통계적 추론 (statistical inference) 등의 많은 휴리스틱(heuristic) 방법들은 최상의 성능을 발휘하는 하이퍼 파라미터를 검색하기 위해 제안되고 있다. 행렬 곱셈 성능 예측은 베이지안 모델에 기반한 통계적 추론 방법을 사용할 수 있다. 베이지안 최적화 방법은 모델 품질을 향상시키거나 불확실성을 줄일 수 있는 다음 단계의 구성 값들에 관한 집합을 검색할 수 있다. When building a performance prediction model, setting model parameters appropriately can be very important to improve prediction quality. Many heuristic methods, such as random walk, grid based search, and statistical inference, have been proposed to search for hyperparameters that perform best. For matrix multiplication performance prediction, a Bayesian model-based statistical inference method can be used. The Bayesian optimization method can search for a set of constituent values of the next step that can improve model quality or reduce uncertainty.
도 1은 본 발명의 일 실시예에 따른 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 시스템을 설명하는 도면이다.1 is a diagram illustrating a cloud-based artificial intelligence operation service system capable of performing a computer according to an embodiment of the present invention.
도 1을 참조하면, 클라우드 기반의 인공지능 연산 서비스 시스템(100)은 사용자 단말(110), 인공지능 연산 서비스 장치(130) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1, a cloud-based artificial intelligence
사용자 단말(110)은 인공지능 연산 서비스 장치(130)에 분산 행렬의 연산 서비스와 같은 인공지능 연산 서비스를 요청할 수 있는 컴퓨팅 장치에 해당할 수 있다. 사용자 단말(110)은 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 인공지능 연산 서비스 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 인공지능 연산 서비스 장치(130)와 동시에 연결될 수 있다.The
인공지능 연산 서비스 장치(130)는 사용자 단말(110)로부터 인공지능 연산 서비스 요청을 수신하고, 인공지능을 구현할 때 필수적인 분산 행렬 연산에 소요되는 연산시간을 예측하여 최적의 클라우드 컴퓨팅 서비스를 제공할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 인공지능 연산 서비스 장치(130)는 분산 컴퓨팅 기반으로 동작되는 적어도 하나의 클라우드 서버로 구현될 수 있다. 인공지능 연산 서비스 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi 등과 같은 무선 네트워크로 연결될 수 있고, 유선 또는 무선 네트워크를 통해 사용자 단말(110)과 통신을 수행할 수 있다.The artificial intelligence
인공지능 연산 서비스 장치(130)는 데이터베이스(150)와 연동하여 분산 행렬 연산과 관련된 적어도 하나의 클라우드 서버에 관한 CPU(Central Processing Unit), GPU(Graphics Processing Unit), TPU(Tensor Processing Unit) 및 메모리를 포함하는 자원 정보를 저장할 수 있다. 한편, 인공지능 연산 서비스 장치(130)는 도 1과 달리, 데이터베이스(150)를 내부에 포함하여 구현될 수 있다.The artificial intelligence
데이터베이스(150)는 인공지능 연산 서비스 장치(130)가 사용자 단말(110)로부터 수신한 인공지능 연산 서비스 요청에 따라 다양한 형태의 분산 행렬 곱셈의 연산 시간을 예측하기 위해 사용하는 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(150)는 다양한 형태의 행렬 곱셈에 대한 프로파일링 정보를 저장할 수 있고, 행렬 곱셈 연산을 수행하기 위하여 분산 배치된 클라우드 상의 작업 서버에 관한 레이아웃(layout) 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 사용자 최적의 클라우드 컴퓨팅 서비스 환경을 제공하기 위하여 인공지능 연산 서비스를 제공하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The
도 2는 도 1에 있는 인공지능 연산 서비스 장치를 나타내는 블록도이다.FIG. 2 is a block diagram showing the artificial intelligence operation service device of FIG. 1.
도 2를 참조하면, 인공지능 연산 서비스 장치(130)는 서버 레이아웃 결정부(210), 파티션 분할부(230), 단위 연산 시간 산출부(250), 전체 연산 시간 예측부(270) 및 제어부(290)를 포함할 수 있다.Referring to FIG. 2, the artificial intelligence
서버 레이아웃 결정부(210)는 제1 및 제2 행렬들 각각의 형상을 기초로 행렬 곱셈 연산을 위한 서버 레이아웃(Layout)을 결정할 수 있다. 여기에서, 서버 레이아웃(Layout)은 클라우드 컴퓨팅 인스턴스들 중에서 제1 및 제2 행렬들 간의 행렬 곱셈 연산을 수행할 수 있는 인스턴스들에 관한 정보에 해당할 수 있다. 예를 들어, 서버 레이아웃은 행렬 곱셈 연산을 수행할 수 있는 가용 인스턴스들의 수, 행렬 곱셈 연산을 구성하는 분산 행렬 연산들 및 가용 인스턴스들 간의 매칭 정보, 그리고 최종 행렬 곱셈 연산 결과를 산출하기 위한 각 분산 행렬 연산들의 통합 정보를 포함할 수 있다. 서버 레이아웃 결정부(210)는 제1 및 제2 행렬들 각각의 형상 및 크기와 현재의 클라우드 컴퓨팅 인스턴스의 가용 상황 등을 고려하여 행렬 곱셈 연산을 위한 서버 레이아웃(Layout)을 결정할 수 있다.The
일 실시예에서, 서버 레이아웃 결정부(210)는 복수의 서버들 중에서 제1 및 제2 행렬들 간의 행렬 곱셈 연산의 특정 조건을 충족시키는 적어도 하나의 작업 서버를 결정하고 작업 서버의 개수를 기초로 제1 및 제2 행렬들의 형상들에 맞게 적어도 하나의 작업 서버를 매칭시켜 서버 레이아웃을 결정할 수 있다. 여기에서, 복수의 서버들은 클라우드 컴퓨팅 인스턴스들 각각에 대응할 수 있고, 작업 서버는 가용 클라우드 컴퓨팅 인스턴스에 해당할 수 있다.In one embodiment, the server
서버 레이아웃 결정부(210)는 제1 및 제2 행렬들의 크기와 형상을 기초로 행렬 곱셈 연산을 통해 산출되는 결과 행렬의 크기를 결정할 수 있고, 결과 행렬의 크기, 즉 행의 수와 열의 수를 곱한 값과 동일하게 작업 서버의 수를 결정할 수 있다. 예를 들어, 서버 레이아웃 결정부(210)는 2행 * 2열의 형상을 가진 결과 행렬의 크기가 4(= 2 * 2)인 경우 작업 서버의 수를 4로 결정할 수 있고, 3행 * 5열의 형상을 가진 결과 행렬의 크기가 15(= 3 * 5)인 경우 작업 서버의 수를 15로 결정할 수 있다. 다른 실시예에서, 서버 레이아웃 결정부(210)는 결과 행렬의 크기와 상관없이 제1 및 제2 행렬들 각각의 형상 또는 크기를 기초로 작업 서버의 수를 결정할 수 있다.The server
서버 레이아웃 결정부(210)는 작업 서버의 개수를 기초로 제1 및 제2 행렬들의 형상들에 맞게 적어도 하나의 작업 서버를 매칭시켜 서버 레이아웃을 결정할 수 있다. 보다 구체적으로, 서버 레이아웃 결정부(210)는 제1 및 제2 행렬들의 형상에 따라 결정되는 결과 행렬의 형상을 기초로 결과 행렬을 구성하는 복수의 분산 행렬 연산들 각각을 수행할 작업 서버를 일대일로 매칭시킬 수 있다. 결과적으로, 서버 레이아웃 결정부(210)는 행렬 곱셈 연산에 필요한 작업 서버의 수, 각 작업 서버에서 수행되는 분산 행렬 연산에 관한 정보 및 각 작업 서버가 클라우드 네트워크 상에 존재하는 위치 정보 등을 포함하는 서버 레이아웃을 결정할 수 있다.The server
파티션 분할부(230)는 서버 레이아웃을 기초로 제1 및 제2 행렬들을 제1 및 제2 블록 기반의 파티션(Partition)들로 분할할 수 있다. 여기에서, 블록 기반의 파티션(Partition)은 행렬 곱셈 연산에 사용되는 왼쪽 및 오른쪽 행렬 각각을 구성하는 부분 행렬에 해당할 수 있다. 예를 들어, 왼쪽 또는 오른쪽 행렬이 6행 * 6열의 크기를 가진 행렬이고 해당 행렬의 행 및 열을 각각 2개의 블록으로 분할하는 경우 총 4개의 블록 기반의 파티션들로 분할될 수 있다. 분할된 4개의 블록 기반의 파티션들은 각각 3행 * 3열의 크기를 가진 행렬에 해당할 수 있다. 결과적으로, 파티션 분할부(230)는 왼쪽 또는 오른쪽 행렬을 행에 대해 2개의 블록들로 분할하고, 열에 대해 2개의 블록들로 분할할 수 있다.The
일 실시예에서, 파티션 분할부(230)는 제1 및 제2 행렬들 각각에 대해 작업 서버의 개수를 기초로 제1 및 제2 블록 기반의 파티션들로 분할할 수 있다. 파티션 분할부(230)는 서버 레이아웃에 포함된 작업 서버의 개수가 12인 경우 제1 및 제2 행렬 간의 행렬 곱셈 연산이 총 12개의 작업 서버에서 분산되어 수행될 수 있도록 제1 및 제2 행렬을 제1 및 제2 블록 기반의 파티션들로 분할할 수 있다. 파티션 분할부(230)에 의해 분할된 제1 및 제2 블록 기반의 파티션들의 형상은 제1 및 제2 행렬의 형상 및 작업 서버의 개수를 기초로 결정될 수 있다.In an embodiment, the
일 실시예에서, 파티션 분할부(230)는 제곱승으로 구성된 서버의 개수를 기초로 곱셈 연산을 위한 제1 및 제2 행렬들을 제1 및 제2 블록 기반 파티션(Partition)들로 분할할 수 있다. 예를 들어, 파티션 분할부(230)는 클라우드 컴퓨팅 환경에서 가용할 수 있는 서버의 개수가 4, 9 및 16과 같이 각각 2, 3 및 4의 제곱승인 경우 제1 및 제2 행렬들 각각의 행과 열에 대해 2, 3, 4블록 기반의 파티션들로 분할할 수 있다. 제1 행렬이 크기가 16000 * 32000이고 제2 행렬의 크기가 32000 * 16000인 경우 서버의 개수가 4대라고 하면 각각의 서버는 8000 * 16000인 행렬에 해당하는 제1 블록 기반 파티션과 16000 * 8000인 행렬에 해당하는 제2 블록 기반 파티션 간의 분산 행렬 연산을 수행할 수 있다. 파티션 분할부(230)는 행렬 분배의 효율성을 위하여 서버의 개수가 제곱승의 값과 동일한 경우를 가정하여 제1 및 제2 행렬들을 제1 및 제2 블록 기반의 파티션들로 분할할 수 있다.In an embodiment, the
단위 연산 시간 산출부(250)는 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출할 수 있다. 단위 연산 시간 산출부(250)는 제1 및 제2 블록 기반의 파티션들에 관한 분산 행렬 연산을 담당하는 각 작업 서버에서의 연산시간을 고려하여 단위 연산 시간을 산출할 수 있고, 단위 연산 시간은 성능 예측 모델을 이용하여 산출할 수 있다. The unit operation
여기에서, 분산 행렬 특성은 다양한 크기와 형상을 가진 임의의 행렬들 간의 행렬 곱셈에 소요되는 연산시간에 영향을 줄 수 있는 행렬 특성에 해당할 수 있다. 예를 들어, 분산 행렬 특성은 왼쪽 행렬의 행 크기(LR)와 열 크기(LC), 오른쪽 행렬의 행 크기(LC)와 열 크기(RC), 왼쪽 행렬의 전체 크기(LR*LC), 오른쪽 행렬의 전체 크기(LC*RC), 왼쪽 및 오른쪽 행렬들의 크기 합계(LR*LC+LC*RC), 결과 행렬의 크기(LR*RC) 및 행렬 연산 횟수(LR*LC*RC)를 포함할 수 있다.Here, the variance matrix characteristic may correspond to a matrix characteristic that may affect an operation time required for matrix multiplication between arbitrary matrices having various sizes and shapes. For example, the variance matrix properties are the row size (LR) and column size (LC) of the left matrix, the row size (LC) and column size (RC) of the right matrix, the total size of the left matrix (LR*LC), and the right Include the total size of the matrix (LC*RC), the sum of the sizes of the left and right matrices (LR*LC+LC*RC), the size of the resulting matrix (LR*RC), and the number of matrix operations (LR*LC*RC). I can.
일 실시예에서, 단위 연산 시간 산출부(250)는 제1 및 제2 블록 기반 파티션들을 서로 연관시켜 서버 레이아웃을 기초로 적어도 하나의 작업 서버에 할당하고 적어도 하나의 작업 서버에서의 연산 시간을 이용하여 단위 연산 시간을 산출할 수 있다. 단위 연산 시간 산출부(250)는 서버 레이아웃에 포함된 매칭 정보를 기초로 특정 작업 서버에서 담당하는 분산 행렬 연산과 연관된 제1 및 제2 블록 기반 파티션들을 결정할 수 있고, 해당 제1 및 제2 블록 기반 파티션들의 형상 및 크기를 기초로 성능 예측 모델을 통해 단위 연산 시간을 산출할 수 있다.In one embodiment, the unit calculation
일 실시예에서, 단위 연산 시간 산출부(250)는 적어도 하나의 작업 서버에 할당된 제1 블록 기반 파티션에 대한 행의 크기와 열의 크기 및 제2 블록 기반 파티션에 대한 열의 크기를 기초로 성능 예측 모델을 통해 단위 연산 시간을 산출할 수 있다. 단위 연산 시간 산출부(250)는 제1 블록 기반 파티션에 대한 행의 크기와 열의 크기 및 제2 블록 기반 파티션에 대한 열의 크기를 포함하는 입력 데이터를 성능 예측 모델에 입력하여 적어도 하나의 작업 서버에서의 연산 시간을 산출할 수 있고 이를 기초로 단위 연산 시간을 산출할 수 있다.In one embodiment, the unit operation
일 실시예에서, 단위 연산 시간 산출부(250)는 성능 예측 모델의 작업 서버의 개수에 대한 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 기초로 분산 행렬 특성을 결정할 수 있다. 예를 들어, 단위 연산 시간 산출부(250)는 성능 예측 모델의 작업 서버의 개수가 4이고 서버 레이아웃에 포함된 작업 서버의 개수가 9인 경우 제1 및 제2 행렬들의 크기에 각각 2/3를 곱하여 보정된 제1 및 제2 행렬의 크기를 결정할 수 있다. 단위 연산 시간 산출부(250)는 보정된 제1 행렬의 행의 크기와 열의 크기 및 보정된 제2 행렬의 열의 크기를 분산 행렬 특성으로서 결정할 수 있다. In an embodiment, the unit
전체 연산 시간 예측부(270)는 단위 연산 시간을 기초로 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측할 수 있다. 전체 연산 시간 예측부(270)는 작업 서버에서의 단위 연산 시간을 산출할 수 있고 산출된 단위 연산 시간들을 통합하여 전체 연산 시간을 산출할 수 있다. 전체 연산 시간 예측부(270)는 성능 예측 모델을 통해 단위 연산 시간을 산출하는 경우 산출된 단위 연산 시간을 기초로 선형 방정식을 활용하여 전체 연산 시간을 산출할 수 있다.The total operation
일 실시예에서, 전체 연산 시간 예측부(270)는 단위 연산 시간에 성능 예측 모델의 작업 서버의 개수에 대한 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 적용하여 전체 연산 시간을 예측할 수 있다. 전체 연산 시간 예측부(270)는 성능 예측 모델이 특정 개수의 작업 서버만이 가용될 수 있는 경우를 가정하여 생성되었음을 이용하여 성능 예측 모델을 통해 산출된 단위 연산 시간에 대해 비율 조정을 통해 전체 연산 시간을 예측할 수 있다. 이에 대해서는 도 6에서 보다 자세히 설명한다.In one embodiment, the total computation
제어부(290)는 인공지능 연산 서비스 장치(130)의 전체적인 동작을 제어하고, 서버 레이아웃 결정부(210), 파티션 분할부(230), 단위 연산 시간 산출부(250), 전체 연산 시간 예측부(270) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The
도 3은 도 1에 있는 인공지능 연산 서비스 장치에서 수행되는 인공지능 연산 서비스 제공 과정을 설명하는 순서도이다.3 is a flowchart illustrating a process of providing an artificial intelligence operation service performed by the artificial intelligence operation service device of FIG. 1.
도 3을 참조하면, 인공지능 연산 서비스 장치(130)는 서버 레이아웃 결정부(210)를 통해 제1 및 제2 행렬들 각각의 형상을 기초로 행렬 곱셈 연산을 위한 서버 레이아웃을 결정할 수 있다(단계 S310). 인공지능 연산 서비스 장치(130)는 파티션 분할부(230)를 통해 서버 레이아웃 결정부(210)에 의해 결정된 서버 레이아웃을 기초로 제1 및 제2 행렬들을 제1 및 제2 블록 기반의 파티션들로 분할할 수 있다(단계 S330).Referring to FIG. 3, the artificial intelligence
인공지능 연산 서비스 장치(130)는 단위 연산 시간 산출부(250)를 통해 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출할 수 있다(단계 S350). 인공지능 연산 서비스 장치(130)는 전체 연산 시간 예측부(270)를 통해 단위 연산 시간 산출부(250)에 의해 산출된 단위 연산 시간을 기초로 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측할 수 있다(단계 S370).The artificial intelligence
도 4는 도 1에 있는 인공지능 연산 서비스 장치에서 블록 기반의 분산 행렬 곱셈이 수행되는 과정을 설명하는 예시도이다.4 is an exemplary diagram illustrating a process of performing block-based variance matrix multiplication in the artificial intelligence operation service device of FIG. 1.
도 4를 참조하면, 임의의 행렬 A 및 B 간의 행렬 곱셈 연산이 복수개의 분할 곱셈 연산으로 분할되어 클라우드 네트워크 상에 배치된 여러 작업 서버들에서 수행된 후 하나로 통합되어 최종적인 결과로서 행렬 C가 생성되는 과정을 확인할 수 있다. 보다 구체적으로, 왼쪽 행렬 A(410)는 3행 * 2열의 크기를 가진 행렬이고, 오른쪽 행렬 B(430)은 2행 * 3열의 크기를 가진 행렬이며, 왼쪽 행렬 A(410) 및 오른쪽 행렬 B(430) 간의 행렬 곱셈을 통해 3행 * 3열의 크기를 가진 결과 행렬 C(450)가 산출되는 과정을 확인할 수 있다.Referring to FIG. 4, a matrix multiplication operation between arbitrary matrices A and B is divided into a plurality of divisional multiplication operations, performed on several task servers arranged on a cloud network, and then integrated into one, resulting in a matrix C being generated. You can check the process of becoming. More specifically, the left matrix A (410) is a matrix having a size of 3 rows * 2 columns, and the right matrix B (430) is a matrix having a size of 2 rows * 3 columns, and the left matrix A (410) and the right matrix B A process in which the
인공지능 연산 서비스 장치(130)는 서버 레이아웃 결정부(210)를 통해 총 9개의 작업 서버(worker-1, worker-2, ..., worker-9)를 결정할 수 있고 9개의 작업 서버에 대해 3행 * 3열의 결과 행렬 C(450)에 맞춰 분산 행렬 연산을 매칭시킨 서버 레이아웃을 결정할 수 있다. 인공지능 연산 서비스 장치(130)는 서버 레이아웃을 기초로 파티션 분할부(230)를 통해 왼쪽 행렬 A(410)를 6개의 제1 블록 기반 파티션들로 분할하고, 오른쪽 행렬 B(430)를 6개의 제2 블록 기반 파티션들로 분할할 수 있다.The artificial intelligence
서버 레이아웃 결정부(210)에 의해 결정된 9개의 작업 서버들은 각각 할당된 분산 행렬 연산을 위해 클라우드 네트워크를 통해 제1 및 제2 블록 기반 파티션들을 수집할 수 있다. 예를 들어, 작업 서버 1(worker-1)은 결과 행렬 C(450)의 (0, 0)의 원소에 해당하는 값을 산출하는 분산 행렬 연산을 수행할 수 있다. 보다 구체적으로, 작업 서버 1(worker-1)은 C(0, 0)을 산출하기 위해 A(0, 0), A(0, 1), B(0, 1), B(1, 0)을 수집할 수 있다. 이러한 과정은 cogroup 작업에 해당할 수 있고 cogroup 작업 시간은 네트워크 성능에 가장 많은 영향을 받을 수 있다.The nine job servers determined by the
cogroup 작업이 완료되면, 각 작업 서버는 제1 및 제2 블록 기반 파티션들 간의 행렬 곱셈 연산 및 원소들 간의 덧셈 연산을 수행할 수 있다. 예를 들어, 작업 서버 1(worker-1)은 C(0, 0)을 산출하기 위해 A(0, 0) * B(0, 1), A(0, 1) * B(1, 0)의 행렬 곱셈 연산을 수행하고 (A(0, 0) * B(0, 1)) + (A(0, 1) * B(1, 0))의 덧셈 연산을 수행할 수 있다. 각 작업 서버에서의 행렬 곱셈 연산은 I/O 디스크 성능 및 컴퓨팅 성능에 가장 많은 영향을 받을 수 있고, 원소들 간의 덧셈 연산은 컴퓨팅 성능에 가장 많은 영향을 받을 수 있다. When the cogroup operation is completed, each operation server may perform a matrix multiplication operation between the first and second block-based partitions and an addition operation between elements. For example, job server 1(worker-1) is A(0, 0) * B(0, 1), A(0, 1) * B(1, 0) to yield C(0, 0) A matrix multiplication operation of (A(0, 0) * B(0, 1)) + (A(0, 1) * B(1, 0)) can be performed. The matrix multiplication operation in each task server can be most affected by I/O disk performance and computing performance, and the addition operation between elements can be most affected by computing performance.
도 5는 도 1에 있는 인공지능 연산 서비스 장치에서 성능 예측 모델을 생성하는 과정을 설명하는 예시도이다.5 is an exemplary diagram illustrating a process of generating a performance prediction model in the artificial intelligence operation service device of FIG. 1.
도 5를 참조하면, 성능 예측 모델 생성 과정은 크게 학습 데이터 집합 생성 단계, 특징 추출 단계 및 모델링 작업 단계로 구성될 수 있다.Referring to FIG. 5, the process of generating a performance prediction model may be largely composed of a training data set generation step, a feature extraction step, and a modeling operation step.
인공지능 연산 서비스 장치(130)는 학습 데이터 집합 생성(Model data generation) 단계에서 다양한 형상과 크기를 가지는 행렬들 간의 행렬 곱셈에 관한 학습 데이터를 생성할 수 있다. 일 실시예에서, 인공지능 연산 서비스 장치(130)는 다양한 행렬 곱셈들에 관한 모집단에서 샘플링을 통해 행렬 곱셈에 관한 학습 데이터 집합을 생성할 수 있다.The artificial intelligence
인공지능 연산 서비스 장치(130)는 특징 추출(Feature extraction) 단계에서 학습 데이터 집합 생성 단계에서 생성된 학습 데이터 집합에 대한 특징을 추출할 수 있다. 보다 구체적으로, 인공지능 연산 서비스 장치(130)는 학습 데이터 집합에 있는 행렬 곱셈들에 대한 분산 행렬 특성을 추출할 수 있다. 분산 행렬 특성은 행렬 곱셈에 소요되는 연산시간에 영향을 미치는 행렬 특성에 해당할 수 있다. 예를 들어, 분산 행렬 특성은 왼쪽 행렬의 행의 크기(LC)와 열의 크기(LC) 및 오른쪽 행렬의 열의 크기(RC)를 포함할 수 있다. 인공지능 연산 서비스 장치(130)는 단위 연산 시간 산출부(250)를 통해 각 작업서버에 할당된 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 산출하여 단위 연산 시간을 산출하는데 활용할 수 있다.The artificial intelligence
인공지능 연산 서비스 장치(130)는 모델링 작업(Modeling) 단계에서 성능 예측 모델을 생성할 수 있다. 성능 예측 모델 생성은 크게 모델 구축 단계 및 하이퍼 파라미터(hyper-parameter) 검색 단계로 구성될 수 있다. 인공지능 연산 서비스 장치(130)는 모델 구축 단계에서 GB(Gradient Boost) Regressor를 사용할 수 있고, 하이퍼 파라미터 검색 단계에서 GB 방법(method)에 대한 최적의 파라미터들을 찾기 위해 베이지안 최적화(Bayesian Optimization)를 사용할 수 있다. GB Regressor 및 Bayesian Optimization의 구체적인 동작 과정은 생략한다.The artificial intelligence
도 6은 도 1에 있는 인공지능 연산 서비스 장치에서 서로 다른 서버 레이아웃을 기초로 행렬 곱셈에 대한 전체 연산 시간을 예측하는 과정을 설명하는 예시도이다.FIG. 6 is an exemplary view illustrating a process of predicting a total operation time for matrix multiplication based on different server layouts in the artificial intelligence operation service apparatus of FIG. 1.
도 6을 참조하면, 인공지능 연산 서비스 장치(130)는 왼쪽 행렬 A와 오른쪽 행렬 B 간의 행렬 곱셈을 통해 결과 행렬 C를 산출할 수 있다. 왼쪽 행렬 A, 오른쪽 행렬 B 및 결과 행렬 C의 크기가 각각 (48000, 24000), (24000,36000) 및 (48000,36000)이고 성능 예측 모델이 4개의 작업 서버들에서 분산 행렬 연산이 수행됨을 전제로 생성되었다고 가정할 경우 인공지능 연산 서비스 장치(130)는, 도 6과 같이, 서로 다른 서버 레이아웃을 기초로 행렬 곱셈에 대한 전체 연산 시간을 예측할 수 있다. 도 6에서는 서버 레이아웃에 포함된 작업 서버의 개수가 제곱승에 해당하는 경우만을 예로 들어 설명하고 있으나, 인공지능 연산 서비스 장치(130)는 서버 레이아웃에 포함된 작업 서버의 개수가 제곱승이 아닌 경우에도 가장 차이가 적은 제곱승의 경우를 적용하거나 또는 이와 유사한 방식을 사용할 수 있다.Referring to FIG. 6, the artificial intelligence
서버 레이아웃 결정부(210)에 의해 결정된 서버 레이아웃이 작업 서버들의 수로서 9를 포함하고 있는 경우, 파티션 분할부(230)를 통해 왼쪽 행렬은 (16000, 8000)의 크기를 갖는 블록 기반 파티션들로 분할될 수 있고 오른쪽 행렬은 (8000, 12000)의 크기를 갖는 블록 기반 파티션들로 분할될 수 있다. 또한, 각 작업 서버에서 산출되는 결과 행렬은 (16000,12000)의 크기를 갖는 부분 행렬에 해당할 수 있다. When the server layout determined by the server
상기의 9개의 작업 서버들을 갖는 서버 레이아웃을 기초로 결정된 블록 기반 파티션들의 크기들과 동일한 블록 기반 파티션들을 4개의 작업 서버들에서 분산 행렬 연산을 수행한다면 왼쪽 행렬의 크기는 (32000, 16000)이고 오른쪽 행렬의 크기는 (16000, 24000)이며 결과 행렬의 크기는 (32000, 24000)이 될 수 있다. 따라서, 4개의 작업 서버들을 기준으로 생성된 성능 예측 모델을 통해 9개의 작업 서버들에서 수행되는 행렬 곱셈의 전체 연산시간을 산출하기 위해서는 (32000, 16000, 24000)로 구성된 행렬 특성 정보를 성능 예측 모델에 입력하여야 하며, f(32000, 16000, 24000)으로 표현될 수 있다. If the variance matrix operation is performed on 4 working servers with block-based partitions equal to the sizes of the block-based partitions determined based on the server layout with the above 9 working servers, the size of the left matrix is (32000, 16000) and the right The size of the matrix is (16000, 24000), and the size of the resulting matrix can be (32000, 24000). Therefore, in order to calculate the total operation time of matrix multiplication performed in 9 job servers through the performance prediction model generated based on 4 job servers, matrix characteristic information consisting of (32000, 16000, 24000) is used as a performance prediction model. It must be entered in and can be expressed as f(32000, 16000, 24000).
여기에서, 함수 f는 행렬 곱셈에 대한 성능 예측 모델을 의미하며, f(LR, LC, RC)는 왼쪽 행렬의 행의 크기와 열의 크기 및 오른쪽 행렬의 열의 크기를 성능 예측 모델에 입력하여 출력된 결과에 해당할 수 있다. 즉, f(LR, LC, RC)는 LR * LC 크기의 왼쪽 행렬 및 LC * RC 크기의 오른쪽 행렬 간의 행렬 곱셈에 대하여 성능 예측 모델이 예측한 연산시간에 해당할 수 있다. 또한, 최종적인 전체 연산 시간은 성능 예측 모델을 통해 산출된 f(32000, 16000, 24000)의 값에 대해 성능 예측 모델의 작업 서버의 개수에 대한 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율, 즉 3/2를 곱하여 산출할 수 있다.Here, the function f refers to the performance prediction model for matrix multiplication, and f(LR, LC, RC) is the output by inputting the row size and column size of the left matrix and the column size of the right matrix to the performance prediction model. May correspond to the result. That is, f(LR, LC, RC) may correspond to an operation time predicted by the performance prediction model for matrix multiplication between the left matrix of size LR * LC and the right matrix of size LC * RC. In addition, the final total computation time is the ratio of the number of job servers included in the server layout to the number of job servers of the performance prediction model with respect to the value of f(32000, 16000, 24000) calculated through the performance prediction model, That is, it can be calculated by multiplying it by 3/2.
결과적으로, 성능 예측 모델이 4개의 작업 서버들에서 분산 행렬 연산이 수행됨을 전제로 생성되었다고 가정할 경우, 9개의 작업 서버들에서 분산 행렬 연산이 수행되는 경우의 전체 연산 시간은 를 통해 산출할 수 있고, 16개의 작업 서버들에서 분산 행렬 연산이 수행되는 경우의 전체 연산 시간은 를 통해 산출할 수 있다.As a result, assuming that the performance prediction model is generated on the assumption that the variance matrix operation is performed on 4 work servers, the total operation time when the variance matrix operation is performed on 9 work servers It can be calculated by using It can be calculated through
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.
100: 클라우드 기반의 인공지능 연산 서비스 시스템
110: 사용자 단말 130: 인공지능 연산 서비스 장치
150: 데이터베이스
210: 서버 레이아웃 결정부 230: 파티션 분할부
250: 단위 연산 시간 산출부 270: 전체 연산 시간 예측부
290: 제어부
410: 왼쪽 행렬 A 430: 오른쪽 행렬 B
450: 결과 행렬 C100: Cloud-based artificial intelligence computing service system
110: user terminal 130: artificial intelligence operation service device
150: database
210: server layout determination unit 230: partition division unit
250: unit calculation time calculation unit 270: total calculation time prediction unit
290: control unit
410: left matrix A 430: right matrix B
450: result matrix C
Claims (8)
(a) 상기 서버 레이아웃 결정부를 통해, 제1 및 제2 행렬들 각각의 형상을 기초로 행렬 곱셈 연산을 위한 서버 레이아웃(Layout)을 결정하는 단계;
(b) 상기 파티션 분할부를 통해, 상기 서버 레이아웃을 기초로 상기 제1 및 제2 행렬들을 제1 및 제2 블록 기반의 파티션(Partition)들로 분할하는 단계;
(c) 상기 단위 연산 시간 산출부를 통해, 상기 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출하는 단계; 및
(d) 상기 전체 연산 시간 예측부를 통해, 상기 단위 연산 시간을 기초로 상기 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측하는 단계를 포함하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
A method performed in an artificial intelligence operation service apparatus including a server layout determination unit, a partition division unit, a unit operation time calculation unit, and a total operation time prediction unit,
(a) determining, through the server layout determination unit, a server layout for a matrix multiplication operation based on the shapes of each of the first and second matrices;
(b) dividing the first and second matrices into first and second block-based partitions based on the server layout through the partition dividing unit;
(c) calculating a unit operation time by applying a variance matrix characteristic to the first and second block-based partitions through the unit operation time calculator; And
(d) Through the total operation time prediction unit, the matrix operation performance for cloud-based artificial intelligence, including the step of estimating the total operation time required for the multiplication operation of the first and second matrices based on the unit operation time. Prediction method.
복수의 서버들 중에서 상기 제1 및 제2 행렬들 간의 행렬 곱셈 연산의 특정 조건을 충족시키는 적어도 하나의 작업 서버를 결정하고 작업 서버의 개수를 기초로 상기 제1 및 제2 행렬들의 형상들에 맞게 상기 적어도 하나의 작업 서버를 매칭시켜 상기 서버 레이아웃을 결정하는 것을 특징으로 하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
The method of claim 1, wherein step (a)
Determine at least one job server that satisfies a specific condition of a matrix multiplication operation between the first and second matrices from among a plurality of servers, and fit the shapes of the first and second matrices based on the number of job servers. A method for predicting matrix computation performance for cloud-based artificial intelligence, characterized in that the server layout is determined by matching the at least one job server.
상기 제1 및 제2 행렬들 각각에 대해 상기 작업 서버의 개수를 기초로 상기 제1 및 제2 블록 기반의 파티션들로 분할하는 것을 특징으로 하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
The method of claim 2, wherein step (b)
A method for predicting matrix computation performance for cloud-based artificial intelligence, characterized in that for dividing each of the first and second matrices into partitions based on the first and second blocks based on the number of the work servers.
상기 제1 및 제2 블록 기반 파티션들을 서로 연관시켜 상기 서버 레이아웃을 기초로 상기 적어도 하나의 작업 서버에 할당하고 상기 적어도 하나의 작업 서버에서의 연산 시간을 이용하여 상기 단위 연산 시간을 산출하는 것을 특징으로 하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
The method of claim 2, wherein step (c)
The first and second block-based partitions are correlated with each other, allocating to the at least one work server based on the server layout, and calculating the unit operation time using the operation time in the at least one work server. Matrix computational performance prediction method for cloud-based artificial intelligence.
상기 적어도 하나의 작업 서버에 할당된 상기 제1 블록 기반 파티션에 대한 행의 크기와 열의 크기 및 제2 블록 기반 파티션에 대한 열의 크기를 기초로 성능 예측 모델을 통해 상기 단위 연산 시간을 산출하는 것을 특징으로 하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
The method of claim 4, wherein step (c)
The unit operation time is calculated through a performance prediction model based on a row size and a column size for the first block-based partition allocated to the at least one job server, and a column size for a second block-based partition. Matrix computational performance prediction method for cloud-based artificial intelligence.
성능 예측 모델의 작업 서버의 개수에 대한 상기 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 기초로 상기 분산 행렬 특성을 결정하는 단계를 포함하는 것을 특징으로 하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
The method of claim 1, wherein step (c)
A matrix operation for cloud-based artificial intelligence, comprising the step of determining the characteristics of the variance matrix based on a ratio of the number of job servers included in the server layout to the number of job servers of the performance prediction model. How to predict performance.
상기 단위 연산 시간에 상기 성능 예측 모델의 작업 서버의 개수에 대한 상기 서버 레이아웃에 포함된 작업 서버의 개수에 대한 비율을 적용하여 상기 전체 연산 시간을 예측하는 것을 특징으로 하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
The method of claim 5, wherein step (d)
For cloud-based artificial intelligence, characterized in that the total computation time is predicted by applying a ratio of the number of job servers included in the server layout to the number of job servers of the performance prediction model to the unit computation time. How to predict matrix performance.
(a) 상기 파티션 분할부를 통해, 제곱승으로 구성된 서버의 개수를 기초로 곱셈 연산을 위한 제1 및 제2 행렬들을 제1 및 제2 블록 기반 파티션(Partition)들로 분할하는 단계;
(b) 상기 단위 연산 시간 산출부를 통해, 상기 제1 및 제2 블록 기반 파티션들에 대해 분산 행렬 특성을 적용하여 단위 연산 시간을 산출하는 단계; 및
(c) 상기 전체 연산 시간 예측부를 통해, 상기 단위 연산 시간을 기초로 상기 제1 및 제2 행렬들의 곱셈 연산에 필요한 전체 연산 시간을 예측하는 단계를 포함하는 클라우드 기반의 인공지능을 위한 행렬 연산성능 예측 방법.
A method performed in an artificial intelligence operation service apparatus including a server layout determination unit, a partition division unit, a unit operation time calculation unit, and a total operation time prediction unit,
(a) dividing first and second matrices for a multiplication operation into first and second block-based partitions based on the number of servers configured as powers of squares through the partition dividing unit;
(b) calculating a unit operation time by applying a variance matrix characteristic to the first and second block-based partitions through the unit operation time calculator; And
(c) Through the total operation time prediction unit, the matrix operation performance for cloud-based artificial intelligence, including the step of predicting the total operation time required for the multiplication operation of the first and second matrices based on the unit operation time. Prediction method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180074043A KR102158051B1 (en) | 2018-06-27 | 2018-06-27 | Computer-enabled cloud-based ai computing service method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180074043A KR102158051B1 (en) | 2018-06-27 | 2018-06-27 | Computer-enabled cloud-based ai computing service method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200010644A KR20200010644A (en) | 2020-01-31 |
KR102158051B1 true KR102158051B1 (en) | 2020-09-21 |
Family
ID=69369285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180074043A KR102158051B1 (en) | 2018-06-27 | 2018-06-27 | Computer-enabled cloud-based ai computing service method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102158051B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094791B (en) * | 2021-04-13 | 2024-02-20 | 笔天科技(广州)有限公司 | Building data analysis processing method based on matrix operation |
KR102621139B1 (en) * | 2021-11-18 | 2024-01-04 | 서울대학교산학협력단 | Method and apparatus for distributed matrix multiplication baed on frame quantization |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101361080B1 (en) | 2012-12-27 | 2014-02-13 | 네이버 주식회사 | Apparatus, method and computer readable recording medium for calculating between matrices |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271325A1 (en) * | 2006-05-08 | 2007-11-22 | Nvidia Corporation | Matrix multiply with reduced bandwidth requirements |
KR101696698B1 (en) * | 2011-12-23 | 2017-01-17 | 한국전자통신연구원 | Distribution and management method of components having reliance |
KR20170078012A (en) * | 2015-12-29 | 2017-07-07 | 전자부품연구원 | Method and System for Optimizing Resource Allocation with Cloud Resources Monitoring and Estimating |
-
2018
- 2018-06-27 KR KR1020180074043A patent/KR102158051B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101361080B1 (en) | 2012-12-27 | 2014-02-13 | 네이버 주식회사 | Apparatus, method and computer readable recording medium for calculating between matrices |
Also Published As
Publication number | Publication date |
---|---|
KR20200010644A (en) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6898496B2 (en) | Computation graph processing | |
CN113168569A (en) | Decentralized distributed deep learning | |
KR102063791B1 (en) | Cloud-based ai computing service method and apparatus | |
US10509683B2 (en) | Modeling resource usage for a job | |
KR102142943B1 (en) | Cloud based artificial intelligence operation service method and apparatus performing the same | |
CN114219076A (en) | Quantum neural network training method and device, electronic device and medium | |
CN114862656A (en) | Method for acquiring training cost of distributed deep learning model based on multiple GPUs | |
CN113516247A (en) | Parameter calibration method, quantum chip control method, device and system | |
KR102158051B1 (en) | Computer-enabled cloud-based ai computing service method | |
KR102452206B1 (en) | Cloud optimization device and method for big data analysis based on artificial intelligence | |
CN111782404A (en) | Data processing method and related equipment | |
KR20220094564A (en) | Method and apparatus for automatically reducing model weight for deep learning model serving optimization, and a method for providing cloud inference services usin the same | |
Ma et al. | Ordinal optimization-based performance model estimation method for HDFS | |
CN113158435B (en) | Complex system simulation running time prediction method and device based on ensemble learning | |
US11113117B2 (en) | Clustering routines for extrapolating computing resource metrics | |
US20180239854A1 (en) | Structure analysis device and structure analysis method | |
KR20210143464A (en) | Apparatus for data analysis and method thereof | |
WO2018087814A1 (en) | Multi-task relationship learning system, method, and program | |
TW201719397A (en) | Structural analysis method and structural analysis program | |
KR102504939B1 (en) | Cloud-based deep learning task execution time prediction system and method | |
Kirsal | Analytical modelling and optimization analysis of large-scale communication systems and networks with repairmen policy | |
JP2013037437A (en) | Structural analysis system, structural analysis program and structural analysis method | |
Aironi et al. | Tackling the linear sum assignment problem with graph neural networks | |
Takahashi et al. | A framework for model search across multiple machine learning implementations | |
Švogor et al. | Multi-criteria software component allocation on a heterogeneous platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |