정말 감사합니다!
OpenCL에 대한 기사를 오랫동안 기다렸어요.
지금 읽어볼게요. :)
읽어볼게요. :)
아마 너무 많이 필요하지는 않을 것입니다. 당신은 이미 모든 것을 알고 있어야합니다.
다음 기사에서는 진지하고 하드웨어에 대해 많이있을 것입니다.
활성화하기에는 너무 이른 시기가 무엇인지 명확히 알려주세요. OpenCL의 경우 이미 활성화되어 있습니다. 모든 실험은 메타에디터 5에서 직접 수행했습니다.
추신: 중요한 것은 OCL을 통해 코더가 이전에는 액세스할 수 없었던 것에 실제로 액세스할 수 있다는 것입니다. 바로 이것들입니다:
- (S)SSEx, Visual Studio에는 포함될 수 있지만 OCL 없이는 MQL5에 포함될 수 없습니다(dll은 포함되지 않음).
- 개별 GPU에서 계산에 액세스할 수 있으므로 dll과 같은 트릭 없이도 MQL5의 단일 코어에서 수행할 수 있는 작업의 속도를 추가로 높일 수 있습니다(
).
1. 별로 필요하지 않을 수도 있습니다. 이 모든 작업을 수행하는 방법을 이미 알고 있을 것입니다.
2. 다음 기사에서는 진지 할 것이며 하드웨어에 대해 많이있을 것입니다.
1. 나는 그것을 필요로한다.
2. 좋아요!
질문은 나에게 불분명합니다. CPU에서 OCL 프로그램의 실행을 "에뮬레이션"이라고 부르는 이유는 무엇입니까? CPU는 장치에 대한 해당 드라이버가 있고 모든 프로세서 코어가로드 된 경우 OCL 프로그램이 작동 할 수있는 GPU와 함께 장치 중 하나 일뿐입니다.

- www.mql5.com
에뮬레이션은 느린 에뮬레이션이기 때문입니다. CPU(인텔 덕분에 명시적으로 금지하지 않으면 벡터화를 찾는 스마트 컴파일러가 있습니다)에서 병렬화는 (S)SSEx 명령어와 종속성 분석에 의해 수행되는 반면, GPU는 SIMD 엔진과 관련된 훨씬 더 많은 가능성을 가지고 있습니다. 그리고 더 넓은 버스와 더 빠른 메모리, 특히 로컬 메모리와 개인 메모리가 있습니다.
하드웨어에 대해. 주요 권장 사항은 AMD 하드웨어에 적용됩니다. 그러나 용어가 약간 수정된 많은 권장 사항은 NVidia 하드웨어에도 적용됩니다.
에뮬레이션이기 때문에 느린 에뮬레이션입니다. CPU(인텔 덕분에 명시적으로 금지하지 않으면 벡터화를 찾는 스마트 컴파일러가 있습니다)에서는 (S)SSEx 명령어와 종속성 분석으로 병렬화가 수행되는 반면, GPU는 SIMD 엔진과 관련된 훨씬 더 많은 가능성을 가지고 있습니다. 그리고 더 넓은 버스와 더 빠른 메모리, 특히 로컬 메모리와 개인 메모리가 있습니다.
하드웨어에 대해. 주요 권장 사항은 AMD 하드웨어에 적용됩니다. 그러나 용어가 약간 수정된 많은 권장 사항은 NVidia 하드웨어에도 적용됩니다.
참고 - GPU용 OCL 및 기타 장치용 에뮬레이션 모드에 대한 언급은 없습니다. OpenCL은 하나 이상의 컴퓨팅 코어가 있고 OCL을 지원하는 모든 장치에서 병렬 연산을 구성하기 위한 범용 프로그래밍 언어입니다. GPU용으로 커스터마이징된 CUDA나 ATI Stream이 아닙니다.
게다가 어떤 경우에는 CPU의 병렬화 및 OCL 계산이 GPU보다 훨씬 더 빠릅니다. 이제 계산 속도는 처리 된 데이터의 양과 계산의 "심각도"(입력 설정에 따라 다름)에 직접적으로 의존하기 때문에 프로그램 설정에서 장치를 선택하도록 의무화했습니다. 때로는 GPU에서 더 빠르며 때로는 CPU에서 더 빠릅니다.
참고 - GPU용 OCL 및 기타 장치용 에뮬레이션 모드에 대한 언급은 없습니다. OpenCL은 하나 이상의 컴퓨팅 코어가 있고 OCL을 지원하는 모든 장치에서 병렬 연산을 구성하기 위한 범용 프로그래밍 언어입니다. GPU용으로 설계된 CUDA나 ATI Stream이 아닙니다.
CPU를 하나의 장치로 보기 때문에 어떤 면에서는 맞을 수도 있습니다. 그러나 일부 데이터는 오히려 이것이 에뮬레이션과 더 비슷하다고 제안합니다. 예를 들어, CPU의 경우 장치 메모리에 버퍼를 쓰는 CLBufferWrite()는 CPU에 하나의 전역 메모리 만 있기 때문에 "틱을 위해"수행된다는 의심이 있습니다. 그러나 CPU에도 캐시가 있지만 어떻게 작동하는지 어떻게 작동하는지 모르겠습니다.
게다가 어떤 경우에는 CPU의 병렬화 및 OCL 계산이 GPU보다 훨씬 빠릅니다.
예, 예를 들어 점( )의 스칼라 곱이 CPU에서 더 빠른 경우가 있습니다. 하지만 코어 2 듀오와 링크에 있는 것보다 더 강력한 그래픽 카드를 비교한다면 무엇이 더 빠를지 추측하지 않겠습니다. 특히 알고리즘 최적화에 신경을 쓴다면 더욱 그렇습니다. CPU와 GPU는 아무리 말해도 다릅니다.
아직 활성화하기에는 이르다는 것을 명확히 해 주세요. OpenCL의 경우 - 이미 활성화되어 있습니다. 모든 실험은 메타에디터 5에서 직접 수행했습니다.
추신: 가장 중요한 것은 OCL을 통해 코더가 실제로 이전에는 액세스할 수 없었던 무언가에 액세스할 수 있다는 것입니다. 바로 이것들입니다:
- (S)SSEx는 Visual Studio에는 포함될 수 있지만 OCL 없이는 MQL5에 포함될 수 없습니다(dll은 포함되지 않음).
- 개별 GPU에서 계산에 액세스하여 dll 유형의 트릭 없이 MQL5의 단일 코어에서 수행할 수 있는 작업을 추가로 가속화합니다(
).
각 프로세서 코어가 많은 컴퓨터와 네트워크로 연결된 그래픽 가속기의 많은 "배고픈 꿀벌"의 지원을받는다고 상상하면 정말 멋지고 빠를 것입니다.
작업의 절반이 완료되었으므로 이제 클라우드를 위해 전원을 켜기 만하면됩니다....
새로운 기고글 OpenCL: 병렬 세계로의 다리 가 게재되었습니다:
2012년 1월 말, MetaTrader 5의 개발을 뒷받침하는 소프트웨어 개발 회사는 MQL5에서 OpenCL에 대한 기본 지원을 발표했습니다. 예시적인 예를 들어, 이 문서에서는 MQL5 환경에서 OpenCL의 프로그래밍 기본 사항을 설명하고 운영 속도 향상을 위한 프로그램 최적화의 몇 가지 예를 제공합니다.
먼저 플랫폼 모델에 대해 몇 마디 하겠습니다.
작성자: Sceptic Philozoff