KR20210120919A - 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 - Google Patents

연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20210120919A
KR20210120919A KR1020210080113A KR20210080113A KR20210120919A KR 20210120919 A KR20210120919 A KR 20210120919A KR 1020210080113 A KR1020210080113 A KR 1020210080113A KR 20210080113 A KR20210080113 A KR 20210080113A KR 20210120919 A KR20210120919 A KR 20210120919A
Authority
KR
South Korea
Prior art keywords
operator
combination
map
operators
merging
Prior art date
Application number
KR1020210080113A
Other languages
English (en)
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 KR20210120919A publication Critical patent/KR20210120919A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 딥 러닝, 인공지능 및 지식 맵 분야에 관한 것으로서, 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램을 제공한다. 연산자 합병 방법은, 처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정하는 것, 임의의 하나의 연산자 조합에 대해, 각각 해당 연산자 조합에 대응되는 합병 연산자를 취득하는 것, 임의의 하나의 합병 연산자에 대해, 해당 합병 연산자를 이용하여 연산자 맵 중의 대응연산자를 각각교체하고, 대응연산자의 의존 에지를 모두 해당 합병 연산자에 연결하는 것을 포함하고, 대응연산자는 해당 합병 연산자에 대응되는 연산자 조합 중의 연산자이고, 임의의 하나의 연산자 조합에는, 각각 연산자 맵 중의 적어도 2개의 연산자가 포함한다. 본 발명의 기술방안에 의하면, 계산 효율 및 딥 러닝 모델의 트레이닝 속도 등을 향상시킬 수 있다.

Description

연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램{Operator merger method, apparatus, electronic equipment, computer readable storage medium and computer program}
본 발명은 컴퓨터 응용 기술에 관한 것으로서, 특히, 딥 러닝, 인공지능 및 지식 맵 분야의 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램에 관한 것이다.
현재, 딥 러닝 기술의 응용은 점점 광범위해지고 있는데, 예를 들면, 음성, 이미지, 자연 언어 처리 등 분야에서 대대적으로 응용되고 있다.
딥 러닝 모델 체적의 지속적인 증대 및 트레이닝 데이터의 대폭 증가에 따라, 딥 러닝의 계산수요를 충족시키기에는 항상 역부족이였고, 속도 최적화는 줄곧 딥 러닝의 시급히 해결해야 할 과제이다.
본 발명은 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램을 제공한다.
본 발명의 연산자 합병 방법은,
처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정하는 것,
임의의 하나의 연산자 조합에 대해, 각각 상기 연산자 조합에 대응되는 합병 연산자를 취득하는 것,
임의의 하나의 합병 연산자에 대해, 상기 합병 연산자를 이용하여 상기 연산자 맵 중의 대응연산자를 각각 교체하고, 상기 대응연산자의 의존 에지를 모두 상기 합병 연산자에 연결하는 것을 포함하고,
상기 대응연산자는 상기 합병 연산자에 대응되는 연산자 조합 중의 연산자이고,
임의의 하나의 연산자 조합에는, 각각 상기 연산자 맵 중의 적어도 2개의 연산자가 포함된다.
본 발명의 연산자 합병 장치는 조합 취득 모듈, 연산자 합병 모듈 및 연산자 교체 모듈을 포함하고,
상기 조합 취득 모듈은, 처리하고자 하는 연산자 맵으로부터 합병하고자 하는 연산자 조합을 확정하기 위한 것이고, 임의의 하나의 연산자 조합에는 각각 상기 연산자 맵 중의 적어도 2개의 연산자가 포함되고,
상기 연산자 합병 모듈은, 임의의 하나의 연산자 조합에 대해, 각각 상기 연산자 조합에 대응되는 합병 연산자를 취득하기 위한 것이고,
상기 연산자 교체 모듈은, 임의의 하나의 합병 연산자에 대해, 상기 합병 연산자를 이용하여 상기 연산자 맵 중의 대응연산자를 각각 교체하고, 상기 대응연산자의 의존 에지를 모두 상기 합병 연산자에 연결하기 위한 것이고, 상기 대응연산자는 상기 합병 연산자에 대응되는 연산자 조합 중의 연산자이다.
본 발명의 전자 장비는,
적어도 하나의 프로세서, 및
상기 적어도 하나의 프로세서에 통신 연결되는 메모리를 포함하고,
상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행될 수있는 명령이 저장되어 있고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서로 하여금 상기와 같은 방법을 실행하도록 한다.
본 발명의 비 일시적 컴퓨터 판독가능 저장 매체에는 컴퓨터 프로그램이 저장되어 있고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 상기와 같은 방법을 실현한다.
본 발명의 컴퓨터 프로그램은 컴퓨터 판독가능 저장 매체에저장되어 있고, 상기 컴퓨터 프로그램의 명령이 프로세서에 의해 실행될 경우, 상기와 같은 방법을 실현한다.
본 발명은 아래와 같은 장점 또는 유익한 효과를 가져올 수 있다. 즉, 딥 러닝을 위한 횡방향 연산자 자동 합병 방법을 제안하였는데, 복수의 연산자의 합병 연산자를 생성하여 대응하는 연산자를 교체함으로써, 연산자의 합병을 실현하였고, 나아가서, 계산 효율 및 딥 러닝 모델의 트레이닝 속도 등을 향상시켰다.
본 명세서에 기술된 내용은 그 목적이 본 발명의 실시예의 핵심 또는 중요한 특징을 지정하기 위한 것이 아니고, 또한, 본 발명의 범위는 이에 한정되지 아니함을 이해하여야 한다. 본 발명의 다른 특징들은 하기 설명으로부터 용이하게 이해할 수 있을 것이다.
첨부된 도면은 본 발명을 보다 쉽게 이해하도록 하기 위한 것이고, 본 발명은 이에 한정되지 않는다.
도1은, 본 발명에 따른 연산자 합병 방법 실시예의 흐름도이다.
도2는, 본 발명에 따른 연산자 합병 장치 실시예(20)의 구성예시도이다.
도3은, 본 발명의 실시예에 따른 방법을 실현하기 위한 전자 장비의 블록도이다.
이하, 첨부 도면을 참조하여 본 발명의 예시적인 실시예를 설명한다. 이하의 설명에서는, 이해를 돕기 위해 본 발명의 실시예의 각종 세부사항을 포함하는데, 이는 단지 예시일 뿐이다. 따라서, 당업자라면, 본 명세서에서 설명한 실시예에 대해 본 발명의 범위 및 취지를 벗어나지 않으면서 여러가지 변경 및 변화를 실시할 수 있음을 이해할 수 있을 것이다. 또한, 명확하고 간결성을 보장하기 위해, 이하의 설명에서는 공지의 기능 및 구성에 대한 설명을 생략한다.
또한, 본 명세서에서 '및/또는'이라는 용어는 단지 연관대상사이의 연관관계를 설명하기 위한 것으로서, 3가지 관계가 존재할 수 있음을 의미한다. 예를 들어, 'A및/또는B'라는 기재는 단독으로 A만 존재하는 경우, A와 B가 동시에 존재하는 경우, 단독으로 B만 존재하는 경우의 3가지 경우가 존재함을 의미한다. 또한, 본 명세서에서 부호'/'는, 일반적으로 전후의 연관대상이 '또는(or)'의 관계임을 나타낸다.
도1은, 본 발명에 따른 연산자 합병 방법 실시예의 흐름도이다. 도1에 도시된 바와 같이, 하기의 구체적인 실시 형태를 포함한다.
단계(101)에서는, 처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정하고, 임의의 하나의 연산자 조합에는 각각 연산자 맵 중의 적어도 2개의 연산자가 포함된다.
단계(102)에서는, 임의의 하나의 연산자 조합에 대해, 각각 해당 연산자 조합에 대응되는 합병 연산자를 취득한다.
단계(103)에서는, 임의의 하나의 합병 연산자에 대해, 해당 합병 연산자를 이용하여 연산자 맵 중의 대응연산자를 각각 교체하고, 대응연산자의 의존 에지를 모두 해당 합병 연산자에 연결하고, 대응연산자는 해당 합병 연산자에 대응되는 연산자 조합 중의 연산자이다.
상기 실시예에서는, 딥 러닝을 위한 횡방향 연산자 자동 합병 방법을 제안하였는데, 복수의 연산자의 합병 연산자를 생성하여 대응하는 연산자를 교체함으로써, 연산자의 합병을 실현하였고, 나아가서, 계산 효율 및 딥 러닝 모델의 트레이닝 속도 등을 향상시켰다.
단계(101)에서와 같이, 처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정할 수 있다. 연산자 맵은 네트워크 중의 연산자의 일종 조직형태로서, 그중의 각 노드는 각각 네트워크 중의 서로 다른 연산자에 대응되고, 연산자는 논리적 의미를 가지는 최소 계산 입도로서, 연산자의 생산자-소비자 관계에 따라 연산자의 의존 맵, 즉, 연사자 맵을 구축하면, 연산자사이의 데이터 전송 관계 등에 따라 에지(의존 에지)를 통해 대응되는 노드를 연결할 수 있다.
바람직한 실시 형태로서, 합병하고자 하는 연산자 조합을 확정하기 위해, 연산자 맵에 대해 제1 처리를 실행하고, 종결 조건을 만족하는 것으로 확정되면, 연산자 맵 중의 적어도 2개의 연산자로 구성된 연산자를 합병하고자 하는 연산자 조합으로 하고, 그렇지 않을 경우, 상기 제1 처리를 중복하여 실행할 수 있다. 제1처리에서는, 연산자 맵중의 연산자를 순회하고, 순회된 임의의 하나의 연산자에 대해, 임의의 다른 연산자와 순회된 연산자사이에 의존관계가 존재하지 않는 것으로 확정되면, 해당 다른 연산자와 순회된 연산자에 의해 연산자 페어를 구성하고, 해당 연산자 페어를 새로운 연산자로 하여, 해당 새로운 연산자로 해당 다른 연산자 및 순회된 연산자를 교체하고, 즉, 해당 새로운 연산자로 원래의 2개의 연산자를 교체하고, 교체후, 연산자 수는 하나 줄어들고, 해당 다른 연산자 및 순회된 연산자의 의존 에지를 모두 해당 새로운 연산자에 연결시킨다.
본 발명에서는, 연산자 맵 중의 연산자를 어떻게 순회하느냐에 대해 한정하지 않고, 실제 수요에 따라 정할 수 있는데, 예를 들어, 폭 우선 순회 방식을 사용할 수 있다.
순회된 임의의 하나의 연산자, 예를 들어, 연산자a에 대해, 임의의 다른 연산자, 예를 들어, 연산자b와 연산자a사이에 의존관계가 존재하지 않는 것으로 확정되면, 연산자b와 연산자a에 의해 연산자 페어를 구성할 수 있다. 여기서, 연산자b와 연산자a사이에 의존관계가 없다는 것은, 즉, 연산자b와 연산자a가 에지를 통해 직접 또는 간접적으로 연결되지 않음을 의미한다. 나아가서, 연산자a와 연산자b로 구성된 연산자 페어에 대해, 해당 연산자 페어를 새로운 연산자로 하여, 연산자 맵 중의 연산자a 및 연산자b를 교체할 수 있고, 연산자a와 연산자b의 의존 에지를 모두 해당 새로운 연산자에 연결시킬 수 있다.
연산자a와 연산자b로 구성된 연산자 페어는 새로운 연산자로서 연산자 맵에 추가된 후, 해당 새로운 연산자를 연산자ab라고 가정하면, 연산자ab는 계속하여 다른 연산자와 연산자 페어를 구성함으로써, 예를 들어, 연산자c와 연산자 페어를 구성함으로써, 연산자a, 연산자b 및 연산자c로 구성된 연산자 페어를 얻을 수 있고, 이에 대응하여, 해당 연산자 페어를 새로운 연산자로 하여 연산자 맵에 추가할 수 있는데, 해당 새로운 연산자를 연산자abc라고 가정하면, 연산자abc로 연산자 맵 중의 연산자ab 및 연산자c를 교체하고, 연산자ab와 연산자c의 의존 에지를 모두 연산자abc에 연결시킬 수 있다.
종결 조건을 만족할 때까지 상기 과정을 계속하여 중복할 수 있다. 종결 조건을 만족하면, 연산자 맵 중의 적어도 2개의 연산자로 구성된 연산자를 각각 합병하고자 하는 연산자 조합으로 할 수 있다. 종결 조건을 만족했을 때까지, 상기 연산자abc가 더 이상 다른 연산자와 연산자 페어를 구성하지 못했다면, 연산자abc를 하나의 합병하고자 하는 연산자 조합으로 할 수 있고, 여기에는, 연산자a, 연산자b 및 연산자c 합계 3개의 연산자를 포함한다.
실제응용에 있어서, 연산자는 자체의 속성을 가지고 있는데, 합병 가능 여부도 속성 중 하나이고, 합병가능하지 않는 연산자는, 통상적으로 본 발명에 따른 방식에 따라 처리할 수 없다.
따라서, 상기 제1 처리를 실행하기 전에, 연산자 맵 중의 연산자로부터 합병가능한 연산자를 선별하고, 선별된 연산자로 제1 연산자 집합을 구성할 수 있는데, 이렇게 되면, 후속적으로 순회된 임의의 하나의 연산자에 대해, 임의의 다른 연산자와 순회된 연산자사이에 의존관계가 존재하지 않는 것으로 확정될 경우, 우선, 해당 다른 연산자 및 순회된 연산자가 모두 제1 연산자 집합에 속하는지 확정하고, 모두 제1 연산자 집합에 속하면, 해당 다른 연산자와 순회된 연산자에 의해 연산자 페어를 구성하고, 후속적 처리를 완성할 수 있다. 즉, 해당 다른 연산자 및 순회된 연산자가 모두 제1 연산자 집합에 속할 경우에만, 연산자 페어를 생성하고 후속적 처리를 실행한다.
종결 조건을 만족한다는 것은, 새로운 연산자 페어를 생성할 수 없거나, 또는, 새로운 연산자 페어를 생성하게 되면, 그중의 연산자 수가 소정의 한계치보다 크게 되는 것을 의미한다. 여기서, 첫번째 경우는, 계속 합병할 수 있는 연산자가 없음을 의미한다. 두번째 경우는, 새로운 연산자 페어를 생성할 수는 있으나, 새로운 연산자 페어를 생성하게 되면, 새로운 연산자 페어에 포함된 연산자 수가 소정의 한계치보다 크게 됨을 의미한다.
상기 소정의 한계치의 구체적인 값은 실제 수요에 따라 정해질 수 있다. 예를 들어, 사전에 설정된 합병 폭 한계L일 수 있고, 여기서, L는 1보다 큰 양의 정수이다.
L의 값이 3이라고 가정하면, 연산자 페어에 포함될 수 있는 연산자가 최대 3개임을 의미하고, 어느 새로운 연산자 페어를 생성하게 될 경우, 그중에 4개의 연산자를 포함하게 되면, 새로운 연산자 페어에 포함되는 연산자 수가 한계치3보다 크게 됨을 의미하므로, 종결 조건을 만족한다고 볼 수 있다. 또한, 상기 한계치의 값은 반드시 정수 일 필요는 없고, 여기서는, 단지 예를 들어 설명한 것이다.
상기 처리를 통해, 합병하고자 하는 연산자 조합을 될수록 많이 찾아낼 수 있으므로, 후속적인 처리를 위해 양호한 기초를 마련하게 되고, 취득한 합병하고자 하는 연산자 조합의 정확성 등을 보장할 수 있다.
단계(102)에서 설명한 바와 같이, 임의의 하나의 연산자 조합에 대해, 각각 해당 연산자 조합에 대응되는 합병 연산자를 취득할 수 있는데, 예를 들어, 온 라인 컴파일을 이용한 연산자 생성 방법에 기초하여, 복수의 의존관계가 없는 연산자를 하나의 연산자로 합병하여, 합병 연산자를 얻을 수 있다.
바람직한 실시 형태로서, 임의의 하나의 연산자 조합에 대해, 우선, 해당 연산자 조합에 대응되는 합병코드를 취득하고, 나아가서, 컴파일을 통해 합병코드에 대응되는 이진법 코드를 생성함으로써, 합병 연산자를 얻을 수 있다.
여기서, 임의의 하나의 연산자 조합si에 대해, 해당 연산자 조합에 대응되는 합병코드를 취득하는 방식은,
1)연산자 조합si 중의 각 연산자vi(vi∈si)에 대해, 각각 그 소스 코드ki 및 스레드 공간(thread space)bi를 취득하는 것,
2)취득한 스레드 공간를 합병하는 것, 즉, B=∑bi,
3)합병후의 스레드 공간B에 따라, 합병코드의 스레드 공간을 선언하는 것,
4)스레드 서브 공간을 분배하여 ki의 계산과정을 완성하는 것,
5)합병코드의 파라미터 리스트를 구축하는 것을 포함하고,
여기서, 합병코드의 파라미터 리스트는 모든 ki의 파라미터 리스트의 적집합이다.
연산자 조합si에 2개의 연산자가 포함된다고 가정할 경우, 각 연산자는 각각 자체의 소스 코드 등에 대응되고, 이들 2개의 연산자로부터 하나의 새로운 연산자를 생성하여야 하는데, 이 새로운 연산자는 원래의 2개의 연산자의 동작을 완성할 수 있고, 이에 대응하여, 하나의 새로운 코드를 생성하여야 하는데, 이 새로운 코드는 원래 존재하지 않는 코드이다.
그 다음, 컴파일을 통해 합병코드에 대응되는 이진법 코드를 생성할 수 있는데, 구체적인 방식은,
1)nvrtcCreateProgram을 통해 nvrtcProgram 대상을 구축하는 것, 즉, nvrtcCreateProgram을 통해 소스 코드(합병코드)를 nvrtcProgram대상으로 패캐징하는 것,
2)cudaDeviceGetAttribute을 통해 현재 그래픽 프로세서(GPU, Graphics Processing Unit)의 아키텍처 파라미터를 취득하여, 컴파일 옵션을 설정하는 것,
3)상기 nvrtcProgram 대상에 따라, nvrtcCompileProgram을 통해 컴파일을 실행하여 병렬 스레드 처리(PTX, Parallel Thread Execution) 중간 코드를 생성하고, 캐릭터 어레이(character array)에 저장하는 것,
4)상기 중간 코드로부터, cuModuleLoadDataEx를 통해 CUmodule 대상을 생성하는 것,
5)상기 CUmodule 대상으로부터, cuModuleGetFunction을 통해 컴파일된 후의 이진법 코드를 취득하는 것을 포함한다.
또한, cuLaunchKernel을 통해 이진법 코드에 대한 호출을 촉발할 수도 있다.
온 라인 방식으로 상기 동적으로 생성된 합병코드를 실행하기 위해서는, 온 라인 방식의 코드를 컴파일하고 코드를 관리하는 전반적인 방법이 필요하다. CUDA(Compute Unified Device Architecture) 인터페이스는 NVRTC(Runtime Compilation) 인터페이스를 제공하여, 온 라인으로 소스 코드를 컴파일함으로써, GPU에서 실행되는 이진법 코드를 생성할 수 있고, 컴파일 실행 과정은 상기 1)~5)에서 설명한 바와 같을 수 있다.
단계(103)에서 설명한 바와 같이, 임의의 하나의 합병 연산자에 대해, 해당 합병 연산자를 사용하여 연산자 맵 중의 대응연산자를 각각 교체하고, 대응연산자의 의존 에지를 모두 해당 합병 연산자에 연결시킬수 있다. 여기서, 대응연산자는 해당 합병 연산자에 대응되는 연산자 조합 중의 연산자이다.
예를 들어, 어느 하나의 합병 연산자가 연산자a, 연산자b 및 연산자c로 구성되었다면, 해당 합병 연산자를 사용하여 연산자 맵 중의 연산자a, 연산자b 및 연산자c를 교체함으로써, 3개의 연산자를 하나의 연산자로 합병할 수 있고, 또한, 연산자a, 연산자b 및 연산자c의 의존 에지를 모두 해당 합병 연산자에 연결시킴으로써, 연산자 맵 중의 의존관계가 변하지 않도록 보장할 수 있다.
지적해두어야 할 것은, 상기의 방법 실시예에서는, 설명의 편리를 위해, 일련의 동작의 조합으로 설명하였지만, 당업자라면, 본 발명이 상기에서 설명한 동작의 순서에 한정되지 않고, 본 발명에 의하면, 일부 단계는 다른 순서로 실행되거나 또는 동시에 실행될 수 있음을 이해할 수 있을 것이다. 또한, 당업자라면, 명세서에서 설명한 실시예는 모두 바람직한 실시예로서, 언급한 동작 및 모듈은 본 발명에 필수적인 것은 아니다.
이상에서는, 방법 실시예에 대해 설명하였는데, 이하에서는, 장치 실시예를 통해 본 발명에 따른 기술방안을 보다 상세히 설명하기로 한다.
도2는, 본 발명에 따른 연산자 합병 장치 실시예(20)의 구성 예시도이다. 도2에 도시된 바와 같이, 조합 취득 모듈(201), 연산자 합병 모듈(202) 및 연산자 교체 모듈(203)을 포함한다.
조합 취득 모듈(201)은, 처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정하기 위한 것으로서, 임의의 하나의 연산자 조합에는 각각 연산자 맵 중의 적어도 2개의 연산자가 포함되어 있다.
연산자 합병 모듈(202)은, 임의의 하나의 연산자 조합에 대해, 각각 해당 연산자 조합에 대응되는 합병 연산자를 취득하기 위한 것이다.
연산자 교체 모듈(203)은, 임의의 하나의 합병 연산자에 대해, 해당 합병 연산자를 사용하여 연산자 맵 중의 대응연산자를 각각 교체하고, 대응연산자의 의존 에지를 모두 해당 합병 연산자에 연결시키기 위한 것으로서, 대응연산자는 해당 합병 연산자에 대응되는 연산자 조합 중의 연산자이다.
바람직한 실시 형태로서, 합병하고자 하는 연산자 조합을 확정하기 위해, 조합 취득 모듈(201)은, 연산자 맵에 대해 제1 처리를 실행하고, 종결 조건을 만족하는 것으로 확정되면, 연산자 맵 중의 적어도 2개의 연산자로 구성된 연산자를 합병하고자 하는 연산자 조합으로 하고, 그렇지 않을 경우, 상기 제1 처리를 중복하여 실행할 수 있다. 제1처리에서는, 연산자 맵중의 연산자를 순회하고, 순회된 임의의 하나의 연산자에 대해, 임의의 다른 연산자와 순회된 연산자사이에 의존관계가 존재하지 않는 것으로 확정되면, 해당 다른 연산자와 순회된 연산자에 의해 연산자 페어를 구성하고, 해당 연산자 페어를 새로운 연산자로 하여, 해당 새로운 연산자로 해당 다른 연산자 및 순회된 연산자를 교체하고, 해당 다른 연산자 및 순회된 연산자의 의존 에지를 모두 해당 새로운 연산자에 연결시킨다.
실제응용에 있어서, 연산자는 자체의 속성을 가지고 있는데, 합병 가능 여부도 속성 중 하나이고, 합병가능하지 않는 연산자는, 통상적으로 본 발명에 따른 방식에 따라 처리할 수 없다.
따라서, 상기 제1 처리를 실행하기 전에, 조합 취득 모듈(201)은, 연산자 맵 중의연산자로부터 합병가능한 연산자를 선별하고, 선별된 연산자로 제1 연산자 집합을 구성할 수 있는데, 이렇게 되면, 후속적으로 순회된 임의의 하나의 연산자에 대해, 임의의 다른 연산자와 순회된 연산자사이에 의존관계가 존재하지 않는 것으로 확정될 경우, 우선, 해당 다른 연산자 및 순회된 연산자가 모두 제1 연산자 집합에 속하는지 확정하고, 모두 제1 연산자 집합에 속하면, 해당 다른 연산자와 순회된 연산자에 의해 연산자 페어를 구성하고, 후속적 처리를 완성할 수 있다. 즉, 해당 다른 연산자 및 순회된 연산자가 모두 제1 연산자 집합에 속할 경우에만, 연산자 페어를 생성하고 후속적 처리를 실행한다.
종결 조건을 만족한다는 것은, 새로운 연산자 페어를 생성할 수 없거나, 또는, 새로운 연산자 페어를 생성하게 되면, 그중의 연산자 수가 소정의 한계치보다 크게 되는 것을 의미한다. 여기서, 첫번째 경우는, 계속 합병할 수 있는 연산자가 없음을 의미한다. 두번째 경우는, 새로운 연산자 페어를 생성할 수는 있으나, 새로운 연산자 페어를 생성하게 되면, 새로운 연산자 페어에 포함된 연산자 수가 소정의 한계치보다 크게 됨을 의미한다.
상기 소정의 한계치의 구체적인 값은 실제 수요에 따라 정해질 수 있다. 예를 들어, 사전에 설정된 합병 폭 한계L일 수 있고, 여기서, L는 1보다 큰 양의 정수이다.
연산자 합병 모듈(202)은, 임의의 하나의 연산자 조합에 대해, 각각 해당 연산자 조합에 대응되는 합병 연산자를 취득할 수 있는데, 예를 들어, 온 라인 컴파일을 이용한 연산자 생성 방법에 기초하여, 복수의 의존관계가 없는 연산자를 하나의 연산자로 합병하여, 합병 연산자를 얻을 수 있다.
바람직한 실시 형태로서, 연산자 합병 모듈(202)은, 임의의 하나의 연산자 조합에 대해, 우선, 해당 연산자 조합에 대응되는 합병코드를 취득하고, 나아가서, 컴파일을 통해 합병코드에 대응되는 이진법 코드를 생성함으로써, 합병 연산자를 얻을 수 있다.
여기서, 임의의 하나의 연산자 조합si에 대해, 해당 연산자 조합에 대응되는 합병코드를 취득하는 방식은,
1)연산자 조합si 중의 각 연산자vi(vi∈si)에 대해, 각각 그 소스 코드ki 및 스레드 공간(thread space)bi를 취득하는 것,
2)취득한 스레드 공간를 합병하는 것, 즉, B=∑bi,
3)합병후의 스레드 공간B에 따라, 합병코드의 스레드 공간을 선언하는 것,
4)스레드 서브 공간을 분배하여 ki의 계산과정을 완성하는 것,
5)합병코드의 파라미터 리스트를 구축하는 것을 포함하고,
여기서, 합병코드의 파라미터 리스트는 모든 ki의 파라미터 리스트의 적집합이다.
그 다음, 컴파일을 통해 합병코드에 대응되는 이진법 코드를 생성할 수 있는데, 구체적인 방식은,
1)nvrtcCreateProgram을 통해 nvrtcProgram 대상을 구축하는 것, 즉, nvrtcCreateProgram을 통해 소스 코드(합병코드)를 nvrtcProgram대상으로 패캐징하는 것,
2)cudaDeviceGetAttribute을 통해 현재 GPU의 아키텍처 파라미터를 취득하여, 컴파일 옵션을 설정하는 것,
3)상기 nvrtcProgram 대상에 따라, nvrtcCompileProgram을 통해 컴파일을 실행하여 PTX 중간 코드를 생성하고, 캐릭터 어레이(character array)에 저장하는 것,
4)상기 중간 코드로부터, cuModuleLoadDataEx를 통해 CUmodule 대상을 생성하는 것,
5)상기 CUmodule 대상으로부터, cuModuleGetFunction을 통해 컴파일된 후의 이진법 코드를 취득하는 것을 포함한다.
또한, cuLaunchKernel을 통해 이진법 코드에 대한 호출을 촉발할 수도 있다.
임의의 하나의 합병 연산자에 대해, 연산자 교체 모듈(203)은, 해당 합병 연산자를 사용하여 연산자 맵 중의 대응연산자를 각각 교체하고, 대응연산자의 의존 에지를 모두 해당 합병 연산자에 연결시킬수 있다. 여기서, 대응연산자는 해당 합병 연산자에 대응되는 연산자 조합 중의 연산자이다.
도2에 도시된 장치 실시예의 구체적인 동작과정은 앞에서 설명한 방법 실시예의 관련 설명을 참조할 수 있으므로, 여기서는 생략한다.
종합하면, 본 발명의 장치 실시예에 따른 기술방안에 의하면, 횡방향 연산자 자동 합병을 실현할 수 있고, 컴파일을 이용한 방법을 사용하여, 실행될 때 새로운 연산자를 생성하여 원래의 연산자를 교체함으로써, 계산 효율 및 딥 러닝 모델의 트레이닝 속도 등을 향상시킬수 있고, 고정적인 모드의 제약을 받지 않아, 보다 광범위한 응용범위 및 최적화 여지 등이 있다.
본 발명의 실시예에 따르면, 본 발명은 전자 장비, 비 일시적 컴퓨터 판독가능 저장 매체, 및 컴퓨터 프로그램도 제공한다.
도3은, 본 발명의 실시예에 따른 방법을 실현하기 위한 전자 장비의 블록도이다. 전자 장비는 예를 들어, 랩탑 컴퓨터, 데스크 탑 컴퓨터, 워크스테이션, PDA (Personal Digital Assistants), 서버, 블레이드 서버, 메인프레임 컴퓨터, 및 기타 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 포함할 수 있다. 전자 장비는 예를 들어, PDA (Personal Digital Assistants), 셀룰러 전화기, 스마트 폰, 웨어러블 장비, 및 기타 유사한 컴퓨팅 장비와 같은 다양한 형태의 모바일 장비를 포함할 수 있다. 본 명세서에 기재된 부품, 이들의 연결 및 관계, 그리고 이들의 기능은 단지 예시적인 것에 불과하며, 본 명세서에서 설명 및/또는 요구하는 본 발명의 범위를 한정하기 위한 것이 아니다.
도3에 도시된 바와 같이, 상기 전자 장비는, 하나 또는 복수의 프로세서(Y01), 메모리(Y02), 및 각 부품을 연결하기 위한 인터페이스를 포함하고, 상기 인터페이스에는 고속 인터페이스 및 저속 인터페이스가 포함된다. 각 부품들은 서로 다른 버스 라인을 통해 서로 연결되고, 공공 메인보드에 장착되거나 또는 수요에 따라 기타 방식으로 장착될 수 있다. 프로세서는 전자 장비에서 실행되는 명령들을 실행할 수 있고, 상기 명령은 메로리에 저장되어 외부 입력/출력장치(예를 들어, 인터페이스에 접속된 표시 장치)에 GUI의 그래픽 정보를 표시하기 위한 명령을 포함할 수 있다. 다른 실시예에서는, 수요에 따라 복수의 프로세서 및/또는 복수의 버스 라인을 복수의 메모리와 함께 사용할 수 있다. 마찬가지로, 복수의 전자 장비를 연결하고, 각 전자 장비에 의해 일부 필요한 동작을 제공할 수 있다(예를 들어, 서버 어레이, 한 세트의 블레이드 서버, 또는 멀티 프로세서 시스템). 도3에서는, 하나의 프로세서(Y01)의 경우를 예로 들어 설명한다.
메모리(Y02)는 본 발명에 의해 제공되는 비 일시적 컴퓨터 판독가능 저장 매체이다. 여기서, 상기 메모리에는 적어도 하나의 프로세서에 의해 실행될 수 있는 명령이 저장될 수 있고, 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행될 경우, 본 발명에 의해 제공되는 방법을 실행할 수 있다. 본 발명의 비 일시적 컴퓨터 판독가능 저장 매체에는 컴퓨터에 의해 실행 될 경우 컴퓨터로 하여금 본 발명에 의해 제공되는 방법을 실행하도록 하는 컴퓨터 명령이 저장되어 있다.
메모리(Y02)는 비 일시적 컴퓨터 판독가능 저장 매체로서, 예를 들어, 본 발명의 실시예에 따른 방법에 대응하는 프로그램 명령/모듈과 같은 비 일시적 소프트웨어 프로그램, 비 일시적 컴퓨터 실행가능 프로그램 및 모듈을 저장할 수 있다. 프로세서(Y01)는 메모리(Y02)에 저장된 비 일시적 소프트웨어 프로그램, 명령 및 모듈을 실행함으로써, 서버의 다양한 기능 및 데이터 처리를 실행한다. 즉, 상기 방법 실시예에 따른 방법을 구현한다.
메모리(Y02)는 프로그램 저장 영역 및 데이터 저장 영역을 포함할 수 있다. 여기서, 프로그램 저장 영역은 OS 시스템 및 적어도 하나의 기능에 필요한 애플리케이션을 저장할 수 있고, 데이터 저장 영역은 전자 장비의 사용에 따라 생성된 데이터 등을 저장할 수 있다. 또한, 메모리(Y02)는 고속 RAM(Random Access Memory)를 포함할 수도 있고, 예를 들어, 적어도 하나의 디스크 저장 디바이스, 플래시 메모리 디바이스, 또는 기타 비 일시적 고체 저장 디바이스와 같은 비 일시적 메모리를 포함할 수도 있다. 일부 실시예에 따르면, 메모리(Y02)는 프로세서(Y01)에 대해 원격으로 설치된 메모리를 포함할 수 있고, 이러한 원격 메모리는 네트워크를 통해 전자 장비에 연결될 수 있다. 상기 네트워크의 실예로는 인터넷, 인트라넷, 블록 체인 네트워크, 근거리 통신망(LAN), 이동 통신망 및 이들의 조합을 포함할 수 있는데, 이에 한정되지는 않는다.
전자 장비는 입력장치(Y03) 및 출력장치(Y04)를 더 포함할 수 있다. 프로세서(Y01), 메모리(Y02), 입력장치(Y03) 및 출력장치(Y04)는 버스 라인 또는 다른 방식을 통해 연결될 수 있는데, 도3에서는 버스 라인을 통해 연결되는 예를 도시하였다.
입력장치(Y03)는 입력된 숫자 또는 캐릭터 정보를 수신할 수 있고, 또한 전자 장비의 사용자 설정 및 기능 제어와 연관된 키 신호입력을 생성할 수 있으며, 예를 들어, 터치 스크린, 키 패드, 마우스, 트랙 패드, 터치 패드, 인디케이터 로드, 하나 또는 복수의 마우스 버튼, 트랙 볼, 콘트로럴 로드 등과 같은 입력장치를 포함할 수 있다. 출력장치(Y04)는 표시 장치, 보조 조명장치 및 햅틱 피드백 장치(예를 들어, 진동모터) 등을 포함할 수 있다. 상기 표시 장치는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이 및 플라스마 디스플레이를 포함할 수 있는데, 이에 한정되지는 않는다. 일부 실시 형태에 따르면, 표시 장치는 터치 스크린일 수 있다.
여기서 설명한 시스템 및 기술의 다양한 실시 형태는 디지털 전자 회로 시스템, 집적 회로 시스템, 주문형 ASIC(주문형 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 구현될 수 있다. 이러한 다양한 실시형태는 하나 또는 복수의 컴퓨터 프로그램을 통해 구현될 수 있고, 상기 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템에서 실행 및/또는 해석될 수 있으며, 상기 프로그램 가능 프로세서는 전용 또는 범용 프로그램 가능 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력장치, 및 적어도 하나의 출력장치로부터 데이터 및 명령을 수신하고, 데이터 및 명령을 저장 시스템, 적어도 하나의 입력장치, 및 적어도 하나의 출력장치로 전송할 수 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 또는 코드라고도 함)은 프로그램 가능 프로세서의 기계언어 명령을 포함하고, 하이 라벨 프로시저 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블러/기계언어를 사용하여 이러한 컴퓨터 프로그램을 실시할 수 있다. 본 명세서에서 사용되는 "기계 판독가능 매체" 및 "컴퓨터 판독가능 매체" 등과 같은 용어는, 기계언어 명령 및/또는 데이터를 프로그램 가능 프로세서의 임의의 컴퓨터 프로그램 제품, 장비, 및/또는 장치(예를 들어, 디스크, CD-ROM, 메모리, 프로그램 가능 논리 장치(PLD))에 제공하는데 사용되고, 기계 판독 가능 신호로서의 기계언어 명령을 수신하는 기계 판독가능 매체를 포함한다. "기계 판독가능 신호"라는 용어는 기계언어 명령 및/또는 데이터를 프로그램 가능 프로세서에 제공하기 위한 임의의 신호를 의미한다.
사용자와의 인터액션을 제공하기 위해서는, 컴퓨터를 통해 본 명세서에서 설명한 시스템 및 기술을 구현할 있는데, 상기 컴퓨터는, 사용자에게 정보를 표시하기 위한 표시 장치(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터), 및 사용자가 상기 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙 볼)를 포함한다. 기타 유형의 디바이스도 사용자와의 인터액션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 센싱 피드백(예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백)일 수 있고, 임의의 형태(소리 입력, 음성 입력, 또는 촉각 입력을 포함)로 사용자로부터의 입력을 수신할 수 있다.
본 명세서에서 설명한 시스템 및 기술은, 백 그라운더 부품을 포함하는 컴퓨팅 시스템(예를 들어, 데이터 서버), 또는 미들웨어 부품을 포함하는 컴퓨팅 시스템(예를 들어, 애플리케이션 서버), 또는 프론트 앤드 부품을 포함하는 컴퓨팅 시스템(예를 들어, GUI 또는 웹 브라우저를 갖는 사용자 컴퓨터로서, 사용자는 상기 GUI 또는 상기 웹 브라우저를 통하여 본 명세서에서 설명한 상기 시스템 및 기술의 실시 형태와 인터액션을 할 수 있음), 또는 이러한 백 그라운더 부품, 미들웨어 부품, 또는 프론트 앤드 부품의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 부품은 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)을 통해 서로 연결될 수 있다. 통신 네트워크는 예를 들어 근거리 통신망(LAN), 광역 통신망(WAN), 블록체인 네트워크, 및 인터넷을 포함할 수 있다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있고, 통상적으로 통신 네트워크를 통해 인터액션을 진행한다. 클라이언트와 서버의 관계는 대응하는 컴퓨터에서 실행되고 서로 클라이언트-서버의 관계를 갖는 컴퓨터 프로그램에 의해 생성된다. 서버는 클라우드 서버일 수 있고, 클라우 컴퓨팅 서버 또는 클라우드 호스트 컴퓨터라고도 불리는데, 클라우드 컴퓨팅 서비스 체계중의 호스트 컴퓨터 제품으로서, 전통적인 물리적 호스트 컴퓨터와 VPS 서비스에 있어서 관리 난이도가 높고 업무 확장성이 약한 결함을 해소할 수 있다.
상기에서 설명한 다양한 프로세스를 사용하여 각 단계의 순서를조정하거나, 일부 단계를 추가 또는 삭제 할 수 있다는 점을 이해하여야 한다. 예를 들어, 본 발명이 개시된 기술방안이 원하는 결과를 구현할 수 있는 한, 본 발명에 기재된 다양한 단계는 병렬적으로 또는 순차적으로, 또는 서로 다른 순서로 실행될 수 있고, 본 발명은 이에 대해 특별히 한정하지 않는다.
본 발명의 보호범위는 상기 다양한 실시 형태에 의해 제한되지 않는다. 당업자라면, 설계 요구 및 기타 요소에 의해, 다양한 수정, 조합, 서브 조합 및 교체가 이루어질 수 있음을 이해할 것이다. 본 발명의 취지 및 원칙내에서 이루어진 임의의 수정, 등가 교체 및 개선 등은 모두 본 발명의 보호범위에 속한다.

Claims (13)

  1. 처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정하는 것,
    임의의 하나의 연산자 조합에 대해, 각각 상기 연산자 조합에 대응되는 합병 연산자를 취득하는 것,
    임의의 하나의 합병 연산자에 대해, 상기 합병 연산자를 이용하여 상기 연산자 맵 중의 대응연산자를 각각 교체하고, 상기 대응연산자의 의존 에지를 모두 상기 합병 연산자에 연결하는 것을 포함하고,
    상기 대응연산자는 상기 합병 연산자에 대응되는 연산자 조합 중의 연산자이고,
    임의의 하나의 연산자 조합에는, 각각 상기 연산자 맵 중의 적어도 2개의 연산자가 포함되는
    연산자 합병 방법.
  2. 제1항에 있어서,
    상기 처리하고자 하는 연산자 맵으로부터, 합병하고자 하는 연산자 조합을 확정하는 것은,
    상기 연산자 맵에 대해 제1 처리를 실행하는 것, 및
    종결 조건을 만족하는 것으로 확정되면, 상기 연산자 맵 중의 적어도 2개의 연산자로 구성된 연산자를 상기 합병하고자 하는 연산자 조합으로 하고, 그렇지 않을 경우, 상기 제1 처리를 중복하여 실행하는 것을 포함하고,
    상기 제1처리에서는, 상기 연산자 맵중의 연산자를 순회하고, 순회된 임의의 하나의 연산자에 대해, 임의의 다른 연산자와 순회된 연산자사이에 의존관계가 존재하지 않는 것으로 확정되면, 상기 다른 연산자와 상기 순회된 연산자에 의해 연산자 페어를 구성하고, 상기 연산자 페어를 새로운 연산자로 하여, 상기 다른 연산자 및 상기 순회된 연산자를 교체하고, 상기 다른 연산자 및 상기 순회된 연산자의 의존 에지를 모두 상기 새로운 연산자에 연결시키는
    연산자 합병 방법.
  3. 제2항에 있어서,
    상기 연산자 맵 중의 연산자로부터 합병가능한 연산자를 선별하고, 선별된 연산자로 제1 연산자 집합을 구성하고,
    상기 다른 연산자 및 상기 순회된 연산자가 모두 상기 제1 연산자 집합에 속하는 것으로 확정되면, 상기 다른 연산자 및 상기 순회된 연산자에 의해 연산자 페어를 구성하는 것을 더 포함하는
    연산자 합병 방법.
  4. 제2항에 있어서,
    상기 종결 조건을 만족한다는 것은,
    새로운 연산자 페어를 생성할 수 없는 경우, 또는, 새로운 연산자 페어를 생성하게 되면 그중의 연산자 수가 소정의 한계치보다 크게 되는 경우를 포함하는
    연산자 합병 방법.
  5. 제1항에 있어서,
    상기 연산자 조합에 대응되는 합병 연산자를 취득하는것은,
    상기 연산자 조합에 대응되는 합병코드를 취득하는 것,
    컴파일을 통해 상기 합병코드에 대응되는 이진법 코드를 생성하여, 상기 합병 연산자를 얻는
    연산자 합병 방법.
  6. 조합 취득 모듈, 연산자 합병 모듈 및 연산자 교체 모듈을 포함하고,
    상기 조합 취득 모듈은, 처리하고자 하는 연산자 맵으로부터 합병하고자 하는 연산자 조합을 확정하기 위한 것이고, 임의의 하나의 연산자 조합에는 각각 상기 연산자 맵 중의 적어도 2개의 연산자가 포함되고,
    상기 연산자 합병 모듈은, 임의의 하나의 연산자 조합에 대해, 각각 상기 연산자 조합에 대응되는 합병 연산자를 취득하기 위한 것이고,
    상기 연산자 교체 모듈은, 임의의 하나의 합병 연산자에 대해, 상기 합병 연산자를 이용하여 상기 연산자 맵 중의 대응연산자를 각각 교체하고, 상기 대응연산자의 의존 에지를 모두 상기 합병 연산자에 연결하기 위한 것이고, 상기 대응연산자는 상기 합병 연산자에 대응되는 연산자 조합 중의 연산자인
    연산자 합병 장치.
  7. 제6항에 있어서,
    상기 조합 취득 모듈은 상기 연산자 맵에 대해 제1 처리를 실행하고,
    종결 조건을 만족하는 것으로 확정되면, 상기 연산자 맵 중의 적어도 2개의 연산자로 구성된 연산자를 상기 합병하고자 하는 연산자 조합으로 하고, 그렇지 않을 경우, 상기 제1 처리를 중복하여 실행하며,
    상기 제1처리에서는, 상기 연산자 맵중의 연산자를 순회하고, 순회된 임의의 하나의 연산자에 대해, 임의의 다른 연산자와 순회된 연산자사이에 의존관계가 존재하지 않는 것으로 확정되면, 상기 다른 연산자와 상기 순회된 연산자에 의해 연산자 페어를 구성하고, 상기 연산자 페어를 새로운 연산자로 하여, 상기 다른 연산자 및 상기 순회된 연산자를 교체하고, 상기 다른 연산자 및 상기 순회된 연산자의 의존 에지를 모두 상기 새로운 연산자에 연결시키는
    연산자 합병 장치.
  8. 제7항에 있어서,
    상기 조합 취득 모듈은, 상기 연산자 맵 중의 연산자로부터 합병가능한 연산자를 선별하고, 선별된 연산자로 제1 연산자 집합을 구성하고, 상기 다른 연산자 및 상기 순회된 연산자가 모두 상기 제1 연산자 집합에 속하는 것으로 확정되면, 상기 다른 연산자 및 상기 순회된 연산자에 의해 연산자 페어를 구성하는
    연산자 합병 장치.
  9. 제7항에 있어서,
    상기 종결 조건을 만족한다는 것은,
    새로운 연산자 페어를 생성할 수 없는 경우, 또는, 새로운 연산자 페어를 생성하게 되면 그중의 연산자 수가 소정의 한계치보다 크게 되는 경우를 포함하는
    연산자 합병 장치.
  10. 제6항에 있어서,
    상기 연산자 합병 모듈은 임의의 하나의 연산자 조합에 대해 각각 상기 연산자 조합에 대응되는 합병코드를 취득하고, 컴파일을 통해 상기 합병코드에 대응되는 이진법 코드를 생성하여, 상기 합병 연산자를 얻는
    연산자 합병 장치.
  11. 적어도 하나의 프로세서, 및
    상기 적어도 하나의 프로세서에 통신 연결되는 메모리를 포함하고,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행될 수 있는 명령이 저장되어 있고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제5항 중 임의의 한항의 방법을 실행하도록 하는
    전자 장비.
  12. 컴퓨터 프로그램이 저장되어 있는 비 일시적 컴퓨터 판독가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램이 상기 프로세서에 의해 실행될 경우, 제1항 내지 제5항 중 임의의 한항의 방법을 실현하는
    비 일시적 컴퓨터 판독가능 저장 매체.
  13. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램의 명령이 프로세서에 의해 실행될 경우, 제1항 내지 제5항 중 임의의 한항의 방법을 실현하는
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
KR1020210080113A 2020-10-22 2021-06-21 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 KR20210120919A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011139137.7 2020-10-22
CN202011139137.7A CN112270413B (zh) 2020-10-22 2020-10-22 算子合并方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
KR20210120919A true KR20210120919A (ko) 2021-10-07

Family

ID=74342813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210080113A KR20210120919A (ko) 2020-10-22 2021-06-21 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램

Country Status (4)

Country Link
US (1) US20210398022A1 (ko)
JP (1) JP7170094B2 (ko)
KR (1) KR20210120919A (ko)
CN (1) CN112270413B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492737B (zh) * 2021-12-31 2022-12-09 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
CN117709403A (zh) * 2022-09-07 2024-03-15 华为云计算技术有限公司 模型优化方法、装置以及计算设备
WO2024065525A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Method and apparatus for optimizing deep learning computation graph

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3096387B2 (ja) * 1994-01-28 2000-10-10 三菱電機株式会社 数値演算処理装置
US7219085B2 (en) 2003-12-09 2007-05-15 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit
US8225074B2 (en) * 2008-10-02 2012-07-17 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator
CN102323946B (zh) * 2011-09-05 2013-03-27 天津神舟通用数据技术有限公司 并行数据库中算子复用的实现方法
JP5966509B2 (ja) * 2012-03-29 2016-08-10 富士通株式会社 プログラム、コード生成方法および情報処理装置
CN111382347A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种对象特征的处理和信息推送方法、装置和设备
CN109977116B (zh) * 2019-03-14 2023-04-21 超越科技股份有限公司 基于fpga-ddr的哈希连接算子加速方法及系统
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN110515626B (zh) * 2019-08-20 2023-04-18 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN111338635B (zh) * 2020-02-20 2023-09-12 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP7170094B2 (ja) 2022-11-11
JP2021152960A (ja) 2021-09-30
US20210398022A1 (en) 2021-12-23
CN112270413B (zh) 2024-02-27
CN112270413A (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
EP3828719A2 (en) Method and apparatus for generating model for representing heterogeneous graph node, electronic device, storage medium, and computer program product
KR20210120919A (ko) 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램
US11928432B2 (en) Multi-modal pre-training model acquisition method, electronic device and storage medium
KR20220001008A (ko) 분산 훈련 방법, 시스템, 기기, 저장 매체 및 프로그램
KR102441475B1 (ko) 질문 분석 방법, 장치, 지식 기반 질문 응답 시스템 및 전자 기기
KR20210114853A (ko) 모델 파라미터를 업데이트하는 방법 및 장치
EP3926548A1 (en) Method and apparatus for pre-training graph neural network
US20210209417A1 (en) Method and apparatus for generating shared encoder
CN110852449B (zh) 模型迁移方法和电子设备
EP3822815A1 (en) Method and apparatus for mining entity relationship, electronic device, storage medium, and computer program product
CN111949272B (zh) 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
WO2023221416A1 (zh) 信息生成方法、装置、设备以及存储介质
CN112015468B (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN111506623B (zh) 数据扩充方法、装置、设备以及存储介质
CN111241838B (zh) 文本实体的语义关系处理方法、装置及设备
CN111625949A (zh) 一种仿真引擎系统、仿真处理方法、设备和介质
KR20210042861A (ko) 이미지를 처리하는 방법, 장치, 전자 기기, 저장 매체 및 프로그램
CN111177479B (zh) 获取关系网络图中节点的特征向量的方法以及装置
KR20220003444A (ko) 옵티마이저 학습 방법, 장치, 전자 기기 및 판독 가능 기록 매체
WO2023169193A1 (zh) 用于生成智能合约的方法和装置
CN116909573A (zh) 计算图的节点融合方法、装置、电子设备及存储介质
CN113691403A (zh) 拓扑节点配置方法、相关装置及计算机程序产品
CN114880020A (zh) 软件开发工具包管理方法、相关装置及计算机程序产品
CN111539225B (zh) 语义理解框架结构的搜索方法和装置
CN114756211A (zh) 模型训练方法、装置、电子设备和存储介质