멀티스레드 벡터 운영 설계 예

권장 대상:

  • 장치: 알 수 없음

  • Quartus®: v16.1

author-image

기준

이 예시 디자인은 두 개의 개별 스레드에서 클래스의 두 인스턴스를 실행합니다. 각 인스턴스는 다른 커널을 사용합니다: 첫 번째 인스턴스는 벡터 추가 커널을 실행하여 수행합니다: C = A, B 및 C가 N 엘리먼트 벡터인 C = A + B. 두 번째 인스턴스는 멤버와 함께 벡터 곱셈 커널을 실행하여 C = A * B(memberwise)를 수행합니다. 커널은 의도적으로 단순하게 유지되며 최적화되지 않았습니다.

두 개의 개별 프로그램을 동시에 사용하도록 장치를 프로그래밍할 수 없으므로 두 문제 인스턴스 모두 동일한 OpenCL™ 프로그램을 공유합니다(따라서 동일한 컨텍스트에서 실행). 그러나 이 예의 경우와 마찬가지로 두 스레드에는 별도의 명령 대기열이 있을 수 있습니다. 단순성을 위해 두 스레드는 서로 다른 인수를 가진 동일한 코드의 두 인스턴스에서 실행되지만 일반적으로 두 개의 개별 클래스를 실행할 수 있습니다.

이 예는 API(기본 OpenCL 응용 프로그램 프로그래밍 인터페이스)를 시연하는 것 외에도, 가능한 경우 여러 OpenCL 장치에서 문제를 분할하는 것을 지원합니다. 사용 가능한 M 장치가 있는 경우 각 장치가 N/M 포인트에서 작동할 수 있도록 문제가 분할됩니다. 호스트 프로그램은 모든 장치가 동일한 유형이라고 가정합니다(즉, 동일한 바이너리를 사용할 수 있지만 코드는 일반화되어 다양한 장치 유형을 쉽게 지원할 수 있습니다).

다운로드 수

설계 예에서는 OpenCL 장치(.cl)와 호스트 응용 프로그램에 대한 소스 코드를 제공합니다. 호스트 응용 프로그램을 컴파일하기 위해 Linux* 패키지에는 Makefile이 포함되어 있으며 Windows* 패키지에는 Microsoft* Visual Studio 2010 프로젝트가 포함되어 있습니다.

다음 다운로드는 이 예에 대해 제공됩니다.

이 설계의 사용은 하드웨어 참조 설계 라이센스 계약의이용 약관에 따라 적용됩니다.

소프트웨어 및 하드웨어 요구 사항

이 설계 예에는 다음 도구가 필요합니다.

  • 인텔® FPGA 소프트웨어 v17.1 이상
  • OpenCL™ v17.1 이상에 대한 SDK 인텔 FPGA
  • Linux에서: GNU 메이크 및 gcc
  • Windows: Microsoft Visual Studio 2010

인텔® 설계 도구를 다운로드하려면 OpenCL 다운로드 페이지를 방문하십시오. 기본 운영 체제에 대한 요구 사항은 OpenCL에 대한 인텔 FPGA SDK와 동일합니다.

OpenCL 및 OpenCL 로고는 Khronos의 허가를 받아 사용하는 Apple Inc.의 상표입니다.

* 제품은 게시된 Khronos 사양을 기반으로 하며 Khronos 적합성 테스트 프로세스를 통과했습니다. 현재 적합성 상태는 www.khronos.org/conformance에서 찾을 수 있습니다.

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.