KR20110073361A - 병렬의 벡터화된 gjk 그래픽 처리 - Google Patents
병렬의 벡터화된 gjk 그래픽 처리 Download PDFInfo
- Publication number
- KR20110073361A KR20110073361A KR1020100132748A KR20100132748A KR20110073361A KR 20110073361 A KR20110073361 A KR 20110073361A KR 1020100132748 A KR1020100132748 A KR 1020100132748A KR 20100132748 A KR20100132748 A KR 20100132748A KR 20110073361 A KR20110073361 A KR 20110073361A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- data
- algorithm
- single instruction
- vertices
- Prior art date
Links
- 238000012545 processing Methods 0.000 title abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims 4
- 239000013598 vector Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241001122767 Theaceae Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Multi Processors (AREA)
Abstract
병렬의 벡터화된 데이터 구조들은 GJK 알고리즘을 적용하는 단일 명령어 복수 데이터 프로세서에서 사용될 수 있다. 그 결과, 그래픽 처리를 하는 다중-코어 프로세서들의 성능은 일부 경우들에서 향상될 수 있다.
Description
이것은 일반적으로 그래픽 처리에 관한 것이다. 그래픽 처리는 컴퓨터 모니터 또는 텔레비전과 같은, 디스플레이 스크린상에 전자 데이터를 디스플레이하기 위한 처리이다.
GJK(Gilbert-Johnson-Keerthi) 알고리즘은 Elmer G. Gilbert, Daniel W. Johnson, S. Sathiya Keerthi에 의해 1988년 발명되었다. 1988년 4월 발간된 Gilbert, E.G 외 저 "A Fast Procedure for Computing the Distance Between Complex Objects in Three Dimensional Space," IEEE Journal of Robotics and Automation, Vol. 4, Issue 2의 199 내지 203 페이지를 참조바란다.
GJK 알고리즘은 두 콘벡스(convex) 세트 사이의 최소 거리를 판단한다. 콘벡스 세트는 기본적으로 오브젝트의 묘사이다. GJK 알고리즘은 두 콘벡스 형상의 민코우스키(Minkowski) 합을 사용한다. 스무드 알고리즘 변경들은 두 콘벡스 세트들 A와 B에 대한 가장 근접한 포인트들의 쌍을 취득한다.
도 1은 본 발명의 일 실시예에 대한 개략적인 도이다.
도 2는 일 실시예에 따른 사용을 위한 데이터 포맷의 도이다.
도 3은 두 오브젝트 및 그러한 오브젝트들에의 GJK 알고리즘 적용의 도이다.
도 4는 본 발명의 일 실시예에 대한 흐름도이다.
도 5는 일 실시예에 대한 시스템 도이다.
도 2는 일 실시예에 따른 사용을 위한 데이터 포맷의 도이다.
도 3은 두 오브젝트 및 그러한 오브젝트들에의 GJK 알고리즘 적용의 도이다.
도 4는 본 발명의 일 실시예에 대한 흐름도이다.
도 5는 일 실시예에 대한 시스템 도이다.
도 1을 참조하면, 그래픽 프로세서 코어(30)는 U-파이프(32) 및 V-파이프(38)를 포함할 수 있다. U-파이프(32)는 벡터 처리 유닛(VPU)(34) 및 산술 로직 유닛(ALU)(36)에 연결된다. 벡터 처리 유닛(34)은 범용 레지스터(GPR)들(42)(예를 들면, 16 범용 레지스터들 × 4 쓰레드들) 및 벡터 레지스터(VXX)들(40)(예를 들면, 32 벡터 레지스터들 × 4 쓰레드들)에 연결된다. 하드웨어 레지스터들은 일부 실시예들에서 전체 데이터 구조를 캡쳐할 만큼 클 필요가 없다.
V-파이프(38)는 산술 로직 유닛(36) 및 16 범용 레지스터들(42)의 32 벡터 레지스터들(40)에 연결된다. U-파이프(32) 및 V-파이프(38)로의 입력은 데이터 캐시(47) 및 명령어 인출(fetching) 및 선택(picking) 유닛(44)에 명령어를 공급하는 명령어 캐시(45)로부터 온다.
데이터 캐시(47)는 다양한 처리 유닛들(34, 36)로부터 출력을 수신하고 데이터를 양방향식 버스를 거쳐 레벨 2 또는 L2 캐시(48)로 제공한다. L2 캐시(48)는 링 버스(46)에 의해 메인 메모리에 연결된다. 클로킹(CLX) 유닛(49)은 데이터 캐시와 L2 캐시 사이의 버스와, L2 캐시와 링 버스 사이의 버스에 클로킹 신호들을 제공한다.
도 1에 도시된, 프로세서 코어(30)는 단일 명령어 복수 데이터(SIMD) 프로세서이다. 그것은 SIMD 로드/저장 명령어들을 사용한다. 동작이 512 비트 또는 16 요소들의 SIMD 폭에 기초하기 때문에, 그것은 데이터 구조의 시작 어드레스가 SIMD 폭의 배수인 어드레스로 시작하도록 데이터가 벡터화되거나 정렬되었을 때 가장 효율적으로 동작한다. 따라서, 후술되는 예에서는, 32 벡터 레지스터들로, SIMD 폭은 16 요소들 또는 512 비트이다. 그리고 데이터 구조의 어드레스가 4, 16, 그리고 가장 바람직하게는 64의 배수들로 시작하는 것이 바람직하다.
유리하게, SIMD 프로세서 코어(30)는 벡터화된 또는 정렬된 데이터로 동작한다. 프로세서는 일부 실시예들에서 성능을 개선하기 위해 SIMD 하드웨어를 효율적으로 활용함으로써 데이터 레벨 병렬화를 이용한다. 따라서 "정렬되고, 벡터화된" 데이터는 시작 어드레스들이 실행 SIMD 프로세서의 폭의 배수이기 때문에 병렬 SIMD 아키텍처에 효율적인 데이터 구조들을 지칭한다. 레지스터들은 일 실시예에서 512 비트 폭의 SIMD 레지스터들이다.
도 2를 참조하면, SIMD 폭이 16 요소들인 일 실시예에서 사용하기 위한 데이터 구조가 도시되었다. 물론, 다른 폭들이 활용될 수 있지만, 유사한 원리들이 SIMD 폭으로 데이터를 정렬하는 데에 사용될 수 있다. 도 2에 도시된 데이터 저장 구조는 매핑 함수를 지원하는 초기 분리 축들, 로컬 좌표 시스템의 위치 및 회전, 콘벡스 세트의 포인트들의 수, 및 각각의 포인트의 위치를 포함한다. 그러나, 본 발명은 꼭짓점들 세트들의 콘벡스 훌(hull)로 나타난 콘벡스 형상들로 제한되지는 않는다.
도 2에 도시된 데이터 구조는 정렬되고, 벡터화된 방식으로 필요한 정보를 정렬하고자 한다. 제1 행의 N은 각각의 열의 오브젝트들 A와 B의 꼭짓점들의 수를 가리키고, X,Y,Z는 오브젝트들 A와 B를 나타내는 3차원 공간에서의 꼭짓점 좌표에 대한 투풀(tuple)들이다. 행들 2,3,4의 X1-X16, Y1-Y16, Z1-Z16 변수들은 로컬 좌표 시스템의 방향 벡터들을 구성하는 분리 축들을 나타낸다. 행들 5 이상은 16개의 오브젝트들의 꼭짓점들과 관련한다. 각각의 꼭짓점은 그것의 X,Y,Z 좌표 값들을 사용하여 나타내진다. X,Y,Z 투풀들의 수는 오브젝트의 꼭짓점들의 수와 동일하다. SIMD 폭 16으로, 데이터 구조들은 이 실시예에서 16 요소들의 폭을 갖는다.
도 3을 참조하면, A와 B로 표시된 두 오브젝트들이 도시된다. 이러한 오브젝트들은 콘벡스 세트들 주위의 박스들의 경계를 효과적으로 정하고 있는 오브젝트들보다 디파인(define)하기에 더 복잡한 구조일 수 있는 콘벡스 세트(도시되지 않음)를 둘러싼다. 오브젝트 A와 오브젝트 B 사이의 최소 거리는 도면에 표기되었다.
"콘벡스"는 도 3에서 오브젝트들 A 및 B에 의해 도시되는 경계들 내에 있는 아이템의 실제 형상을 의미한다. X,Y,Z 좌표들로 구성된 각각의 꼭짓점에 대한 포인트들의 세트는 콘벡스 오브젝트를 둘러싼다.
일부 실시예들을 따라, GJK 알고리즘은 도 1에 도시된 것과 같은, 다중 코어, 병렬 프로세서들에 적합한 정렬되고, 벡터화된 데이터에 동작하도록 구성된다. 이와 관련하여, 데이터는 그러한 프로세서의 SIMD 폭에 관하여 벡터화되고 정렬된다.
일 실시예에 따라, GJK 알고리즘을 적용하는 시퀀스가 도 4에 도시되었다. 시퀀스(139)는 소프트웨어, 하드웨어, 또는 펌웨어로 구현될 수 있다. 소프트웨어 구현 실시예에서, 그것은 자기, 광학, 또는 반도체 저장 디바이스와 같은, 컴퓨터로 판독가능한 매체에 저장되는 명령어들에 의해 구현될 수 있다. 명령어들은 도 1에 도시된 유형의 그래픽 프로세서 코어 또는 단일 명령어 복수 데이터 아키텍처를 사용하여 병렬로 다수의 쓰레드들에 동작하는 능력을 포함하는 범용 프로세서를 포함하는 적합한 프로세서, 컨트롤러, 또는 컴퓨터에 의해 실행될 수 있다.
따라서, 블록 10에서 도시된 바와 같이, 우선, 정렬되고, 벡터화된 데이터가 준비된다. 다음으로, 데이터는 두 오브젝트들 A와 B 사이의 최소 거리를 연산하는 반복 벡터화된 GJK 알고리즘을 사용하여 처리된다. 벡터화된 지원 매핑은 완전 벡터화된 GJK 구현 환경에서 구현된다. 명령어들은 마스크된 동작의 도움으로 분기 회피를 가능하게 한다. 어떠한 "if-else" 구문도 일 실시예에서 마스크된 동작들을 사용하여 선형 코드로서 표현될 수 있다.
벡터화된 GJK 알고리즘은 일 실시예에서 두개의 루프들만 포함한다. 블록(12)에 표시된, 제1 루프는 매핑 함수를 지원한다. 이 루프는 주어진 세트의 모든 포인트들을 처리한다. 블록(14)에 표시된, 제2 루프는 알고리즘의 최적 포인트(즉, 오브젝트들간 최단 거리)가 식별될 때까지 알고리즘을 반복한다.
알고리즘을 위한 유사 코드(pseudo code)는 오브젝트들 A와 B에 대한 A 및 B 세트들에 대한 민코우스키 합을 사용한다. 따라서, 두 오브젝트들의 합은 그것들의 조합이 된다. 즉, A+B={a+b:a in A, b in B}. A 및 B 세트들에 대한 민코우스키 차는 새로운 세트이다: A―B={a―b:a in A, b in B}=A+(-B). CH(S)는 S 꼭짓점들의 콘벡스 훌을 나타낸다.
알고리즘에의 입력은 A와 B의 세트들의 민코우스키 차의 콘벡스 훌(M)이다. 먼저, 임의의 심플렉스 Q가 M으로부터 선택된다. 그 후 Q 꼭짓점들의 콘벡스 훌의 원점에 제일 가까운 포인트 P가 연산된다. P가 원점이라면 종료한다. 그러한 경우에서는, 0이 리턴된다.
그렇지 않다면, Q는 P가 Q' 꼭짓점들의 콘벡스 훌에 있도록, Q의 가장 작은 서브셋 Q'으로 감소한다. 그 후 V는 방향 -P로 포인트를 지원하는, -P로 주어진 방향을 따른 극점의 지원 맵 연산(Sc)과 동일하다. V가 -P 방향으로 더 이상 넘지 않다면, P 그 자체는 종료하고 ||P||를 리턴한다. 다음으로, V를 Q에 더하고 Q 꼭짓점들의 콘벡스 훌의 원점에 가장 가까운 포인트 P를 연산하는 것으로 돌아간다.
일부 실시예들에서, 벡터화된 방식은 SIMD 유닛들을 사용하는 세트들의 쌍을 처리하는 것과 다중-쓰레드된 프로세서 능력을 동시적으로 사용하는 것을 가능하게 한다. 큰 성능 향상이 일부 실시예들에서 다중-코어 프로세서들로 달성될 수 있다. 엄청난 성능 향상이 동일한 수의 포인트들을 갖는 세트들을 처리함으로써 달성될 것이다. 이러한 경우에, 메모리 사용이 가장 효율적이다. 게임에서, 복잡한 바디(body)들조차 몇 다스의 꼭짓점들보다 더 많이 갖지 않기 때문에 이것은 추정에 불과하다.
도 5에 도시된, 컴퓨터 시스템(130)은 버스(104)에 의해 칩셋 코어 로직(110)에 연결된, 하드 드라이브(134) 및 제거가능한 매체(136)를 포함할 수 있다. 키보드 및 마우스(120), 또는 다른 통상의 컴포넌트들은 버스(108)를 통해 칩셋 코어 로직에 연결될 수 있다. 코어 로직은 버스(105)를 통해 그래픽 프로세서(112)에, 그리고 일 실시예에서는 메인 또는 호스트 프로세서(100)에 연결될 수 있다. 그래픽 프로세서(112)는 또한 버스(106)에 의해 프레임 버퍼(114)에 연결될 수 있다. 프레임 버퍼(114)는 버스(107)에 의해 디스플레이 스크린(118)에 연결될 수 있다. 일 실시예에서, 그래픽 프로세서(112)는 SIMD 아키텍처를 사용하는 다중-쓰레드, 다중-코어 병렬 프로세서일 수 있다.
소프트웨어 구현의 경우에, 관련된 코드는 메인 메모리(132) 또는 그래픽 프로세서 내에서 임의로 사용가능한 메모리를 포함하는, 임의의 적합한 반도체, 자기, 또는 광학 메모리에 저장될 수 있다. 따라서, 일 실시예에서, 도 4의 시퀀스(139)를 수행하는 코드는 메모리(132) 또는 그래픽 프로세서(112)와 같은 머신 또는 컴퓨터로 판독가능한 매체에 저장될 수 있고, 일 실시예에서 프로세서(100) 또는 그래픽 프로세서(112)에 의해 실행될 수 있다. 일 실시예에서, 코어(30)는 그래픽 프로세서(112)의 일부이다.
본원에서 설명된 기술들은 2, 3차 및 그 이상의 차원의 표면들을 포함하는, 임의의 콘벡스 오브젝트에 적용한다. 전술한 실시예에서는 선형의 시간 알고리즘이 지원 맵을 연산하는 데에 사용되지만, 다른 알고리즘들도 사용될 수 있다.
본원에서 설명된 그래픽 처리 기술들은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예를 들면, 그래픽 기능은 칩셋내에 통합될 수 있다. 대안적으로, 별도의 그래픽 프로세서가 사용될 수 있다. 또 다른 실시예에 따라, 그래픽 기능들이 멀티코어 프로세스를 포함하는, 범용 프로세서에 의해 구현될 수 있다.
"일 실시예" 또는 "실시예"에의 본 명세서의 지칭은 그 실시예와 연관되어 설명된 특정한 특징, 구조, 또는 특성이 본 발명에 포함된 적어도 하나의 구현에 포함되는 것을 의미한다. 따라서, "일 실시예" 또는 "실시예에서"라는 구절은 반드시 동일한 실시예를 지칭하는 것은 아니다. 게다가, 특정한 특징들, 구조들, 또는 특성들은 설명된 특정한 실시예가 아닌 다른 적절한 형식으로 성립될 수 있고 그러한 모든 형식 본 출원의 청구범위 내에 포함될 수 있다.
본 발명이 제한된 수의 실시예들에 관하여 설명되었지만, 당업자들은 그것들로부터의 수많은 치환 및 변형을 이해할 것이다. 첨부된 청구범위들은 본 발명의 진정한 사상 및 범위 내에 포함되도록 그러한 모든 치환들 및 변형들을 다루도록 의도되었다.
Claims (20)
- 프로세서 상에 실행되는 GJK(Gilbert-Johnson-Keerthi) 알고리즘에서 정렬되고, 벡터화된 데이터 구조를 사용하는 단계를 포함하는 방법.
- 제1항에 있어서,
단일 명령어 복수 데이터 프로세서를 사용하는 단계를 포함하는 방법. - 제2항에 있어서,
상기 단일 명령어 복수 데이터 프로세서의 폭으로 상기 데이터 구조를 정렬하는 단계를 포함하는 방법. - 제3항에 있어서,
다수의 꼭짓점들을 포함하는 제1 행, 분리 축들을 가리키는 제2, 제3, 제4 행들, 및 상기 단일 명령어 복수 데이터의 폭과 동일한 다수의 오브젝트의 꼭짓점들을 가리키는 나머지 행들을 갖는 행렬로 상기 데이터 구조를 정렬하는 단계를 포함하는 방법. - 제1항에 있어서,
매핑 함수의 지원으로 제1 루프를 실행하는 단계를 포함하는 방법. - 제1항에 있어서,
최적의 포인트가 찾아질 때까지 상기 알고리즘의 적용을 반복하는 단계를 포함하는 방법. - 제1항에 있어서,
다중-코어 병렬 프로세서 상에 상기 알고리즘을 실행하는 단계를 포함하는 방법. - 제7항에 있어서,
상기 프로세서는 별도의 그래픽 프로세서인 방법. - 컴퓨터로 하여금 GJK 알고리즘에서 정렬되고, 벡터화된 데이터 구조를 사용하게 하는 명령어들을 저장하는 컴퓨터로 판독가능한 매체.
- 제9항에 있어서,
단일 명령어 복수 데이터 프로세서 상에 실행되는 명령어들을 더 저장하는 컴퓨터로 판독가능한 매체. - 제10항에 있어서,
단일 명령어 복수 데이터 프로세서의 폭으로 상기 데이터 구조를 정렬하는 명령어들을 더 저장하는 컴퓨터로 판독가능한 매체. - 제11항에 있어서,
다수의 꼭짓점들을 포함하는 제1 행, 분리 축들을 포함하는 제2, 제3, 제4 행들, 및 상기 단일 명령어 복수 데이터의 폭과 동일한 다수의 오브젝트의 꼭짓점들을 가리키는 나머지 행들을 갖는 행렬로 상기 데이터 구조를 정렬하는 명령어들을 더 저장하는 컴퓨터로 판독가능한 매체. - 제9항에 있어서,
매핑 함수의 지원으로 제1 루프를 실행하는 명령어들을 더 저장하는 컴퓨터로 판독가능한 매체. - 제9항에 있어서,
최적의 포인트가 찾아질 때까지 상기 알고리즘의 적용을 반복하는 명령어들을 더 저장하는 컴퓨터로 판독가능한 매체. - GJK 알고리즘에서 정렬되고, 벡터화된 데이터 구조를 사용하는 단일 명령어 복수 데이터 프로세서, 및
상기 프로세서에 연결된 저장소
를 포함하는 장치. - 제15항에 있어서,
상기 프로세서는 다중-코어 병렬 프로세서인 장치. - 제15항에 있어서,
상기 프로세서는 매핑 함수의 지원으로 제1 루프를 실행하는 장치. - 제17항에 있어서,
상기 프로세서는 최적의 포인트가 찾아질 때까지 상기 알고리즘의 적용을 반복하는 장치. - 제15항에 있어서,
상기 프로세서는 다수의 꼭짓점들을 포함하는 제1 행, 분리 축들을 가리키는 제2, 제3, 제4 행들을 갖는 행렬로 상기 데이터 구조를 정렬하는 장치. - 제15항에 있어서,
상기 프로세서는 상기 프로세서의 단일 명령어 복수 데이터의 폭과 동일한 다수의 오브젝트의 꼭짓점들을 가리키는 나머지 행들을 갖는 행렬로 상기 데이터 구조를 정렬하는 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/645,892 US8564601B2 (en) | 2009-12-23 | 2009-12-23 | Parallel and vectored Gilbert-Johnson-Keerthi graphics processing |
US12/645,892 | 2009-12-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110073361A true KR20110073361A (ko) | 2011-06-29 |
Family
ID=43531607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100132748A KR20110073361A (ko) | 2009-12-23 | 2010-12-22 | 병렬의 벡터화된 gjk 그래픽 처리 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8564601B2 (ko) |
KR (1) | KR20110073361A (ko) |
CN (1) | CN102110283B (ko) |
DE (1) | DE102010053559A1 (ko) |
GB (1) | GB2476550B (ko) |
TW (1) | TWI508023B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013095616A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for selecting elements of a vector computation |
EP2701090A1 (en) * | 2012-08-22 | 2014-02-26 | Aahlstö OÜ | Method and system for enforcing 3D restricted rights in a rapid manufacturing and prototyping environment |
US10423693B2 (en) * | 2014-09-15 | 2019-09-24 | Autodesk, Inc. | Parallel processing using a bottom up approach |
JP6563358B2 (ja) * | 2016-03-25 | 2019-08-21 | 日立オートモティブシステムズ株式会社 | 画像処理装置及び画像処理方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596686A (en) * | 1994-04-21 | 1997-01-21 | Silicon Engines, Inc. | Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US7197625B1 (en) | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
GB2343969A (en) * | 1998-11-20 | 2000-05-24 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing an arithemtic operation on a plurality of signed data values |
US7961194B2 (en) * | 2003-11-19 | 2011-06-14 | Lucid Information Technology, Ltd. | Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system |
US7129951B2 (en) * | 2004-05-06 | 2006-10-31 | Valve Corporation | Method and system for performing speculative collisions for a video game |
US7475392B2 (en) | 2004-06-07 | 2009-01-06 | International Business Machines Corporation | SIMD code generation for loops with mixed data lengths |
US7788071B2 (en) * | 2004-12-03 | 2010-08-31 | Telekinesys Research Limited | Physics simulation apparatus and method |
JP4192976B2 (ja) * | 2006-08-02 | 2008-12-10 | ソニー株式会社 | 接触形状算出装置及び接触形状算出方法、並びにコンピュータ・プログラム |
US7856627B2 (en) | 2006-08-08 | 2010-12-21 | International Business Machines Corporation | Method of SIMD-ization through data reshaping, padding, and alignment |
CN101572693A (zh) * | 2008-04-29 | 2009-11-04 | 国际商业机器公司 | 用于并行模式匹配的设备和方法 |
-
2009
- 2009-12-23 US US12/645,892 patent/US8564601B2/en not_active Expired - Fee Related
-
2010
- 2010-12-03 TW TW099142114A patent/TWI508023B/zh not_active IP Right Cessation
- 2010-12-06 DE DE102010053559A patent/DE102010053559A1/de not_active Withdrawn
- 2010-12-07 GB GB1020736.3A patent/GB2476550B/en not_active Expired - Fee Related
- 2010-12-22 CN CN201010618118.2A patent/CN102110283B/zh not_active Expired - Fee Related
- 2010-12-22 KR KR1020100132748A patent/KR20110073361A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
GB2476550A (en) | 2011-06-29 |
DE102010053559A1 (de) | 2012-03-15 |
TWI508023B (zh) | 2015-11-11 |
GB2476550B (en) | 2013-10-30 |
GB201020736D0 (en) | 2011-01-19 |
TW201135665A (en) | 2011-10-16 |
CN102110283B (zh) | 2014-12-10 |
US8564601B2 (en) | 2013-10-22 |
CN102110283A (zh) | 2011-06-29 |
US20110153996A1 (en) | 2011-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928034B2 (en) | Work-efficient, load-balanced, merge-based parallelized consumption of sequences of sequences | |
CN110084875B (zh) | 使用计算着色器作为顶点着色器的前端 | |
US8339409B2 (en) | Tile-based graphics system and method of operation of such a system | |
KR101635334B1 (ko) | 대칭적 에지 스플릿팅에 의한 표면 테셀레이션 | |
US10706494B2 (en) | Uniform predicates in shaders for graphics processing units | |
EP3183714A2 (en) | Shader program execution techniques for use in graphics processing | |
JP6848028B2 (ja) | グラフィック処理のためのパーシェーダープリアンブル | |
US20200210805A1 (en) | Neural Network Generator | |
US9632783B2 (en) | Operand conflict resolution for reduced port general purpose register | |
CN110807827A (zh) | 系统生成稳定的重心坐标和直接平面方程访问 | |
KR20110073361A (ko) | 병렬의 벡터화된 gjk 그래픽 처리 | |
US6003098A (en) | Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information | |
US9928638B2 (en) | Graphical simulation of objects in a virtual environment | |
Cao et al. | Multicore computing for SIFT algorithm in MATLAB® parallel environment | |
CN111598991A (zh) | 一种基于计算机进行多线程并行的非结构网格体绘制方法 | |
Qin et al. | A CNN hardware accelerator designed for YOLO algorithm based on RISC-V SoC | |
Ha et al. | Bandwidth Efficient Summed Area Table Generation for CUDA | |
US20100164969A1 (en) | Methods and systems to selectively batch-cull graphics primitives in response to sample cull results | |
US20200202815A1 (en) | Raster order view | |
Martin et al. | Solving the Euler Equations for Unstructured Grids on Graphical Processor Units | |
Wong et al. | Magnetohydrodynamics simulations on graphics processing units | |
CN116308995A (zh) | OpenCL与OpenGL混合的图像计算显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment |