DLL 없이 MetaTrader 5 터미널에서 직접 OpenCL로 할 수 있는 일은 다음과 같습니다. - 페이지 16

 

출력을 확인하겠습니다.

이중 수학 없이는 우리 분야에서 할 일이 없습니다. 2020년에는 더욱 그렇습니다.

더 일찍 OpenCL이 출현했을 때 타협을 찾고 스스로를 속이는 것이 가능했다면 "어쨌든 부동액으로 계산할 수 있습니다" 하지만 지금은 그렇지 않습니다.

double -> int -> double을 변환하려는 모든 시도는 특히 대용량에서 성능과 이득을 완전히 없애줍니다.

올바른 옵션은 새 드라이버와 함께 기본 형식과 최신 카드를 사용하는 것입니다.

 

지원이 있습니다:

OpenCL device name: GeForce GTX 1050 Ti with Max-Q Design
OpenCL device ext: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64
                   cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing
                   cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics


OpenCL device name: Intel(R) UHD Graphics 630
OpenCL device ext: cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics 
                   cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator 
                   cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long
                   cl_khr_fp64 cl_khr_subgroups cl_khr_il_progr
 
저는 IT의 현대적 수익 창출 모델에 대해 논쟁하지 않겠습니다. 물론 최적화된 알고리즘을 사용하는 것과 비교하여 가능한 효율성의 25%로 작동하는 새로운 하드웨어를 구입하는 것이 지구 온난화를 유발하지는 않습니다. :)

OpenCL과 MT5에 대한 주제는 나중에 가족 예산에 고정 컴퓨터를 위한 무료 쉬운 돈이 나타날 때로 미루자.

제발, 레나트. 비디오 카드/그래픽 보조 프로세서에서 이중 데이터 및 계산을 사용하기 전에 이러한 장치에서 지원하는지 확인해야 한다는 MQL5 설명서(OpenCL 섹션)에 면책 조항을 추가하십시오. MQL5 초보자가 구형 하드웨어에 대해 불필요한 환상을 갖지 않도록.

시간 내 주셔서 감사합니다.
 
aim-1 :

제발, 레나트. 비디오 카드/그래픽 보조 프로세서에서 이중 데이터 및 계산을 사용하기 전에 이러한 장치에서 지원하는지 확인해야 한다는 MQL5 설명서(OpenCL 섹션)에 면책 조항을 추가하십시오. MQL5 초보자가 구형 하드웨어에 대해 불필요한 환상을 갖지 않도록.

이것은 이미 자동 지도 테스트에서 작성되었으며 선택되지 않았습니다: 최신 릴리스에서 완료

OpenCL  test compilation failed with error: use of type 'double' requires cl_khr_fp64 extension to be enabled 

이중 지원이 없는 오래된 카드에 대해서는 수학 계산에 절대적으로 쓸모가 없다고 말하는 것이 안전합니다.

현실이 그렇습니다.

 
Renat Fatkhullin :

이것은 이미 자동 지도 테스트에서 작성되었으며 선택되지 않았습니다: 최신 릴리스에서 완료

나는 MetaQuotes를 존중합니다. 아주 좋은 플랫폼은 당신에 의해 개발되고 유지됩니다.

면책 조항(시스템 요구 사항)은 평판을 추적하려는 경우 논리적입니다. 왜냐하면 나 같은 순진한 초보자는 네트워크에서 흥미로운 기능을 집어들고 MT5 출시와 함께 불을 붙인 후 다른 이별이 잠재적으로 가능한 것처럼 보이므로 새로운 플랫폼에 오랫동안 식을 수 있습니다. 그것을 사용할 때. 예를 들어 표준 라이브러리 등에서 OOP를 처리해야 할 필요가 있습니다.

그건 그렇고, OOP를 사용하면 OOP가 없는 간단한 거래 고문의 템플릿을 공식적으로 게시하는 것이 좋을 것입니다(가급적 MT5 웹사이트 페이지에서 직접). 코드의 작동. 이러한 의미에서 새로운 MQL5 튜토리얼(기존 튜토리얼을 반복하지 않고 더 짧은 것이 바람직함)은 문제가 되지 않을 것입니다. 그러면 거래 커뮤니티(주 엔진/진행 스토퍼)가 새 플랫폼으로 빠르게 크롤링됩니다.

작업에 다시 한 번 감사드립니다.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
aim-1 : 나는 MetaQuotes를 존중합니다. 당신이 개발하고 지원하는 아주 좋은 플랫폼이 있습니다.

면책 조항(시스템 요구 사항)은 평판을 모니터링하려는 경우 논리적입니다. 나 같은 순진한 초보자는 네트워크에서 포착한 흥미로운 기능에 불을 붙이고 MT5가 출시될 때 중단될 수 있기 때문에 새 플랫폼을 사용할 때 다른 고장이 잠재적으로 가능한 것처럼 보이기 때문에 새 플랫폼으로 오랫동안 냉각될 수 있습니다. 예를 들어, 표준 라이브러리 등에서 OOP를 이해할 필요가 있습니다.

그건 그렇고, OOP를 사용하면 OOP가 없는 간단한 거래 전문가 고문의 템플릿을 공식적으로 (MT5 웹사이트 페이지에 더 잘) 배치하여 MQL4 아기도 MQL5에 신속하게 참여할 수 있도록 하는 것이 좋을 것입니다. 코드 작업을 제어합니다. 이런 의미에서 MQL5에 대한 새 교과서(오래된 물을 반복하지 않고 더 짧은 것이 바람직함)는 아프지 않을 것입니다. 그러면 거래 커뮤니티(주요 엔진/진행의 스토퍼)가 새 플랫폼으로 더 빨리 크롤링할 것입니다.

노고에 다시 한번 감사드립니다.

일부 예는 MQL5 패키지와 함께 제공됩니다. 완전히 절차 지향적인 프로그래밍. MQL4에 대해 잘 모르겠습니다.

 
불분명
 //test.mqh
void f( int ii )
{
         for ( int i = -ii; i <= ii; i++ )
        {
                 int j = CLContextCreate ( i );
                 if ( j != - 1 )
                {
                         CLContextFree ( j );
                         Print ( ii, ":", i, ":" , j );
                }
        }
}
 #include "test.mqh"
void OnStart () { f( 32765 ); }
결과:
 32765:0 : 2147352576
32765:1 : 2147418112

그리고 만약

 #include "test.mqh"
void OnStart () { f( 32766 ); }

결과:

 32766:0 : 2147418112

한 경우에는 하나의 출력(라인)이 있고 다른 경우에는 두 개가 있는 이유는 무엇입니까?

 
A100 :
불분명한 결과:

그리고 만약

결과:

한 경우에는 하나의 출력(라인)이 있고 다른 경우에는 두 개가 있는 이유는 무엇입니까?

메시지 주셔서 감사합니다.
수정했습니다.

빈번한 재사용으로 인한 OpenCL 핸들 값 오버플로, SHORT_MAX 회 이상

 
분명히 그들은 문제를 근본적으로 해결했지만 이제는 작동하지 않습니다.
 void OnStart ()
{
         if ( CLContextCreate ( 0 ) == - 1 ) Print ( GetLastError () ); //5114

}

일주일 전에는 모든 것이 잘 작동했습니다. 이중 지원이 없고 사용되지 않는 경우 OpenCL을 비활성화하는 이유는 무엇입니까?

 

예, 이중 지원이 없는 기존 카드는 전혀 사용하지 않기로 결정했습니다.

일반적으로 불량하고 디버그되지 않은 드라이버를 포함하여 오래된 카드에서는 모든 것이 매우 나쁩니다. 이러한 드라이버는 종종 충돌하여 터미널을 떨어뜨립니다.

실제로는 컴퓨터 게임 개발자처럼 드라이버 버전을 명시적으로 제어하는 것이 이미 필요합니다. 기본 Microsoft 드라이버로는 충분하지 않습니다.
사유: