2014-07-08 4 views

답변

3

데이터가 이미 SIMD 비디오 명령에 의해 기본적으로 처리되는 형식으로 패킹 된 경우 일반 명령으로 처리 할 수 ​​있도록 여러 단계를 거쳐 압축을 풀어야합니다.

또한 SIMD 비디오 명령의 처리량은 일반적인 산술 연산과 비교할 때 수행 된 실제 연산 수와 곱해야합니다.

예를 들어, 지침 vadd4의 경우, 팩 된 32 비트 수량 (4 바이트 정수)에서 4 개의 정수 추가가 수행됩니다. 이 동작을 일반적인 정수 추가로 복제하려면 데이터를 4,개의 수량으로 압축하고 4 개의 정수를 추가 한 다음 결과를 다시 채우려면 상당히 복잡한 명령 시퀀스가 ​​필요합니다. 단일 정수 추가로 수행하려고 시도한 경우 한 결과에서 캐리하면 다음 결과가 손상 될 수 있습니다. vadd4은 클램핑 기능 및 정수 추가에서 사용할 수없는 다른 동작도 제공합니다.

SM2.0의 경우 vadd4에 의해 수행 된 4 번의 작업 대 4 개의 정수 추가는 압축되지 않은 데이터에 필요한만큼 매력적입니다. SM3.0의 경우, 언 패킹과 패킹이 일반 정수 추가 루틴에 추가 될 때 vadd4이 매력적입니다. 상황이 더욱 매력적이됩니다 with cc 5.0.

+0

대부분의 경우, 예를 들어 이미지 필터는 8 비트 입력에서 시작하여 데이터에 대해 8 비트 이상 (일반적으로 최대 16)의 여러 작업이 필요합니다. 내 관점에서 볼 때 이러한 프로세스가 끝나면 vadd4가 유용합니다. 가장 많이 사용되는 것은 vadd2입니다. 또한 중간 값이 16 비트를 초과하지 않고 양수일 수있는 경우 "SIMD와 같은"추가 또는 시프트가 일반 산술에서 수행 될 수 있습니다. 또한 유용 할 수 있습니다 [multibyte arithmetic] (http://www.hackersdelight.org/corres.txt) – BaraBashkaD

+1

일부 유스 케이스의 경우 SIMD 명령어를 잘 사용하기 위해 계산을 약간 다시 고려해야 할 수도 있습니다. 다음의 논문은 4 웨이 바이트 형 SIMD 연산을 계산 생물학의 주요 계산에 적용하여 상당한 속도 향상을 이룬다. http://www.biomedcentral.com/1471-2105/14/117 – njuffa

+0

NVIDIA는 또한 등록 된 개발자 [인라인 PTX SIMD 기능 세트] (https://developer.nvidia.com/rdp/assets/simd-functions)는 Kepler에서 하드웨어 가속 기능을 제공하며 SIMD 비디오 명령을 고려중인 개발자에게 유용 할 수 있습니다. –