OpenCL: MQL5의 내부 구현 테스트 - 페이지 52

 
joo :
제가 알기로는 데이터가 있는 2차원/다차원 배열을 GPU로 전송하고 싶다면 데이터 표현을 구조로 사용하고 구조를 전달할 수 있습니까?

나는 구조를 통해 시도했다 - 그것은 효과가 있었다! 나 자신은다차원 배열 을 전송하기 위해 이런 식으로 추측하지 않았을 것입니다 :) 감사합니다!

2차원 배열을 사용하여 작은 예를 첨부했습니다. 곡선의 예는 작지만 일반적으로 그러한 변태의 가능성을 잘 보여줍니다. :)

추신: UGA + OpenCL에는 감정이 부족합니다. :) 우리가 어떻게 살았는지 기억하는 것은 끔찍합니다 ...

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
파일:
 
MigVRN :

추신: UGA + OpenCL에는 감정이 부족합니다. :) 우리가 어떻게 살았는지 기억하는 것은 끔찍합니다 ...

감사합니다. 마음에 드신다니 다행입니다. 그리고 한 가지는 이 기회를 빌어 Ilyas Sharapov( mql5 )에게 많은 감사와 인사를 전합니다.
 

CL_DEVICE_ANYCL_DEVICE_GPU는 이미 사용되지 않습니까?

CL_USE_ANYCL_USE_GPU_ONLY 가 현재 관련이 있습니까?

 
joo :

CL_DEVICE_ANYCL_DEVICE_GPU는 이미 사용되지 않습니까?

CL_USE_ANYCL_USE_GPU_ONLY 가 현재 관련이 있습니까?

네.
 
MetaDriver :
네.

Tychkov 교수의 방법을 사용하여 내 컴퓨터 1 에서 CL_USE_ANY 보다 빠르고 CL_USE_GPU_ONLY 보다 빠른 신비한 장치를 발견했습니다.

그것은 무엇입니까? :영형

 
joo :

Tychkov 교수의 방법을 사용하여 내 컴퓨터 1 에서 CL_USE_ANY 보다 빠르고 CL_USE_GPU_ONLY 보다 빠른 신비한 장치를 발견했습니다.

그것은 무엇입니까? :영형

스튜디오의 상태. 모든 장치용. :)
 
MetaDriver :
스튜디오의 상태. 모든 장치용. :)
 CL_USE_ANY

2012.04.12 23:27:29 Struct_OpenCL (GBPUSD,H1) GPY와 CPY의 계산 차이: 0.0
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.326
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) GPU 시간 = 141ms

2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) CPU 시간 = 187ms


 CL_USE_GPU_ONLY

2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) GPY와 CPY의 계산 차이: 0.0
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.376
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) GPU 시간 = 125ms

2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) CPU 시간 = 172ms


 하나

2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) GPY와 CPY의 계산 차이: 0.0
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 2.397
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) GPU 시간 = 78ms

2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) CPU 시간 = 187ms


나는 모든 사람들이 나와 같은 방식으로 속임수를 쓸 것을 권장합니다. 당신은 자발적이지 않은 개별 그래픽보다 더 빠른 장치를 찾을 수 있을 것입니다. :디


추신. CL_USE_ANYCL_USE_GPU_ONLY 가 동일한 것으로 의심됩니다. 계산은 CPU에 있지만 장치 1은 내 GPU입니다. 이것은 표준 상수의 기본적인 혼동입니다.

 
joo :

나는 모든 사람들이 나와 같은 방식으로 속임수를 쓸 것을 권장합니다. 당신은 자발적이지 않은 개별 그래픽보다 더 빠른 장치를 찾을 수 있을 것입니다. :디

추신. CL_USE_ANYCL_USE_GPU_ONLY 가 동일한 것으로 의심됩니다. 계산은 CPU에 있지만 장치 1은 내 GPU입니다. 이것은 표준 상수의 기본적인 혼동입니다.

여기 내가 읽은 것이 있습니다! 터미널 도움말이 없었습니다! 이러한 변경 사항을 반영하도록 코드를 업데이트했습니다. 당신이 무엇을 할 수 있는지보십시오. 나는 다음과 같이 가지고있다 :

23:17:00 CPU 시간 = 1155ms
23:17:01 OpenCL 기능이 있는 총 장치: 2
23:17:02 GPU 시간 #0 = 249ms
23:17:02 CPY/GPU #0= 4.639
23:17:03 GPU 시간 #1 = 265ms
23:17:03 CPY/GPU #1= 4.358

GPU: Advanced Micro Devices, Inc. OpenCL 1.1을 사용하는 Turks(6개 장치, 725MHz, 1024Mb, 버전 CAL 1.4.1703(VM))
CPU: 정품 Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz(OpenCL 1.1 포함)(4개 장치, 2095MHz, 5990Mb, 버전 2.0)
파일:
 
2012.04.12 22:37:07     OpenCL  GPU: NVIDIA Corporation GeForce GT 440 with OpenCL 1.1 (2 units, 1660 MHz, 1024 Mb, version 296.10)
2012.04.12 22:37:07     OpenCL  CPU: AuthenticAMD AMD Athlon(tm) II X4 630 Processor with OpenCL 1.1 (4 units, 2998 MHz, 2048 Mb, version 2.0)
2012.04.12 22:39:46     Struct_OpenCL__1 (EURUSD,H1)    Время СPU = 686 ms
2012.04.12 22:39:47     Struct_OpenCL__1 (EURUSD,H1)    Всего устройств c возможностями OpenCL: 2
2012.04.12 22:39:50     Struct_OpenCL__1 (EURUSD,H1)    Время GPU №0 = 172 ms
2012.04.12 22:39:50     Struct_OpenCL__1 (EURUSD,H1)    CPY/GPU №0= 3.988
2012.04.12 22:39:51     Struct_OpenCL__1 (EURUSD,H1)    Время GPU №1 = 406 ms
2012.04.12 22:39:51     Struct_OpenCL__1 (EURUSD,H1)    CPY/GPU №1= 1.690
 
MigVRN :

이 구조를 사용해 보십시오. 작동하지 않았습니다.

 struct Array2dFloat
{
   float Column[];
   int LineCount( int lineCount)
  {
     int size = ArrayResize (Column,lineCount);
     ArrayInitialize (Column, 0.0 );
     return (size);
  }
};

그리고 편의를 위해 두 차원의 크기를 조정하는 이 함수는 다음과 같습니다.

 void ArrayResize2DArrayFloat(Array2dFloat &ArrayOfArray[], int columnCount, int lineCount)
{
   // разбивка по вертикали
   ArrayResize (ArrayOfArray,columnCount);
   // разбивка по горизонтали
   for ( int i= 0 ;i<columnCount;i++)
    ArrayOfArray[i].LineCount(lineCount);
}
사유: