MetaDriver: Ho aggiornato il driver (l'installazione è andata bene) ma ControlCenter ora manca completamente dalla barra delle applicazioni e non può nemmeno essere lanciato manualmente. È tutto a posto?
Ho avuto lo stesso problema quando ho scaricato il software del driver di Vista da Win7 e ControlCenter è apparso nella mia barra di sistema
Puoi dirmi se c'è un emulatore OpenCL http://developer.amd.com/zones/opensource/pages/ocl-emu.aspx, è conveniente cambiare il codice sul portatile durante un giorno e poi usarlo sul PC per l'ottimizzazione. Presumo che MT5 non funzionerà con l'emulatore OpenCL?
If you want faster apps, you’ll want to use heterogeneous computing technologies. We’re here to make that happen, with plenty of tools and resources. And if you’re thinking about architecture, HSA is going to rock your world—learn more.
Ho avuto lo stesso problema quando ho installato il software del driver di Vista su Win7, poi l'ho scaricato per Win7 e ControlCenter è apparso nel mio vassoio
Puoi dirmi, c'è un emulatore OpenCL http://developer.amd.com/zones/opensource/pages/ocl-emu.aspx, è comodo per cambiare il codice sul portatile durante il giorno, e poi usarlo sul PC per scopi di ottimizzazione, presumo che MT5 non funzionerà con l'emulatore OpenCL ?
2. Naturalmente MT5 non funzionerà con l'emulatore. Ma può essere usato per il debug e i programmi pronti (debuggati) possono essere inseriti nel codice mql5.
Ho scaricato anche l'emulatore. Non ho ancora avuto modo di usarlo.
Advanced Micro Devices (NYSE: AMD) — это инновационная технологическая компания, ориентированная на сотрудничество с заказчиками и партнерами с целью разработки вычислительных и графических решений нового поколения для офиса, дома и игр.
C'è stato un intoppo, sono d'accordo. Ma è scomparso dopo un riavvio... Ora ho l'icona, la uso sempre per controllare la temperatura e la velocità di raffreddamento, quindi non posso andare da nessuna parte senza.
1. c'è stato un problema tecnico, sono d'accordo. Ma è scomparso dopo un riavvio... Ora c'è un'icona, la uso sempre per controllare la temperatura e la velocità di raffreddamento, quindi non posso andare da nessuna parte senza.
Renat, che mi dici del multithreading? Ho eseguito diversi script di test su diversi grafici e hanno iniziato a mischiare le loro letture, rubando i buffer l'uno dall'altro per tutto il tempo.
// Ho cancellato il monitor, ho dato un calcio all'unità di sistema - niente aiuta.
Renat, che mi dici del multithreading? Ho eseguito diversi script di prova su diversi grafici e hanno iniziato a mischiare le loro letture, rubando i buffer l'uno dall'altro per tutto il tempo.
// Ho cancellato il monitor, ho dato un calcio all'unità di sistema - non funziona niente.
Se stiamo parlando dell'esempio del test di Mandelbrot, notate che l'immagine viene scritta nello stesso file. Ecco perché sembra che diversi thread rovinino il file BMP dell'altro.
Provate questo script - funziona (rand) con ogni filo e non va più in conflitto:
//+------------------------------------------------------------------+//| OpenCLTest.mq5 |//| Copyright 2011, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2011, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"//+------------------------------------------------------------------+//| Код функции OpenCL |//+------------------------------------------------------------------+conststring cl_src=
"__kernel void MFractal( \r\n"" float x0, \r\n"" float y0, \r\n"" float x1, \r\n"" float y1, \r\n"" uint max, \r\n"" __global uint *out) \r\n"" { \r\n"" size_t w = get_global_size(0); \r\n"" size_t h = get_global_size(1); \r\n"" size_t gx = get_global_id(0); \r\n"" size_t gy = get_global_id(1); \r\n"" float dx = x0 + gx * (x1-x0) / (float) w; \r\n"" float dy = y0 + gy * (y1-y0) / (float)h; \r\n"" float x = 0; \r\n"" float y = 0; \r\n"" float xx = 0; \r\n"" float yy = 0; \r\n"" float xy = 0; \r\n"" uint i = 0; \r\n"" while ((xx+yy)<4 && i<max) \r\n"" { \r\n"" xx = x*x; \r\n"" yy = y*y; \r\n"" xy = x*y; \r\n"" y = xy+xy+dy; \r\n"" x = xx-yy+dx; \r\n"" i++; \r\n"" } \r\n"" if(i==max) \r\n"" out[w*gy+gx] = 0; \r\n"" else \r\n"" out[w*gy+gx] = (uint)((float)0xFFFFFF/(float)max)*i; \r\n"" } \r\n";
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+#define SIZE_X 512#define SIZE_Y 512//+------------------------------------------------------------------+//| Заголовок BMP файла |//+------------------------------------------------------------------+struct BitmapHeader
{
ushort type;
uint size;
uint reserv;
uint offbits;
uint imgSSize;
uint imgWidth;
uint imgHeight;
ushort imgPlanes;
ushort imgBitCount;
uint imgCompression;
uint imgSizeImage;
uint imgXPelsPerMeter;
uint imgYPelsPerMeter;
uint imgClrUsed;
uint imgClrImportant;
};
//+------------------------------------------------------------------+//| Запись битмапа в файл |//+------------------------------------------------------------------+bool SaveBitmapToFile(conststring filename,uint &bitmap[],const BitmapHeader &info)
{
//--- откроем файлint file=FileOpen(filename,FILE_WRITE|FILE_BIN);
if(file==INVALID_HANDLE)
{
Print(__FUNCTION__," error opening '",filename,"'");
return(false);
}
//--- запишем заголовок и само телоif(FileWriteStruct(file,info)==sizeof(info))
{
if(FileWriteArray(file,bitmap)==ArraySize(bitmap))
{
FileClose(file);
return(true);
}
}
//--- неудачно получилось, удалим файл от греха подальшеFileClose(file);
FileDelete(filename);
Print(__FUNCTION__," error writting '",filename,"'");
//--- вернем ошибкуreturn(false);
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
int cl_ctx;
int cl_prg;
int cl_krn;
int cl_mem;
int fileidx=MathRand()&255;
//--- инициализируем OpenCL объектыif((cl_ctx=CLContextCreate())==0)
{
Print("OpenCL not found");
return;
}
if((cl_prg=CLProgramCreate(cl_ctx,cl_src))==0)
{
CLContextFree(cl_ctx);
Print("OpenCL program create failed");
return;
}
if((cl_krn=CLKernelCreate(cl_prg,"MFractal"))==0)
{
CLProgramFree(cl_prg);
CLContextFree(cl_ctx);
Print("OpenCL kernel create failed");
return;
}
if((cl_mem=CLBufferCreate(cl_ctx,SIZE_X*SIZE_Y*sizeof(float),CL_MEM_READ_WRITE))==0)
{
CLKernelFree(cl_krn);
CLProgramFree(cl_prg);
CLContextFree(cl_ctx);
Print("OpenCL buffer create failed");
return;
}
//--- подготовимся к выполнениюfloat x0 =-2;
float y0 =-0.5;
float x1 =-1;
float y1 = 0.5;
uint max = 20000;
uint offset[2]={0,0};
uint work [2]={SIZE_X,SIZE_Y};
//--- выставляем неизменяемые параметры функции OpenCL
CLSetKernelArg(cl_krn,4,max);
CLSetKernelArgMem(cl_krn,5,cl_mem);
//--- подготовим буфер для вывода пикселейuint buf[];
ArrayResize(buf,SIZE_X*SIZE_Y);
//--- подготовим заголовок
BitmapHeader info;
ZeroMemory(info);
info.type =0x4d42;
info.size =sizeof(info)+SIZE_X*SIZE_Y*4;
info.offbits =sizeof(info);
info.imgSSize =40;
info.imgWidth =SIZE_X;
info.imgHeight =SIZE_Y;
info.imgPlanes =1;
info.imgBitCount =32;
info.imgCompression=0; // BI_RGB
info.imgSizeImage =SIZE_X*SIZE_Y*4;
//--- создаём объект для вывода графикиObjectCreate(0,"x",OBJ_BITMAP_LABEL,0,0,0);
ObjectSetInteger(0,"x",OBJPROP_XDISTANCE,4);
ObjectSetInteger(0,"x",OBJPROP_YDISTANCE,26);
//--- рендерим пока не остоновят снаружиwhile(!IsStopped())
{
uint x=GetTickCount();
//--- выставляем плавающие параметры
CLSetKernelArg(cl_krn,0,x0);
CLSetKernelArg(cl_krn,1,y0);
CLSetKernelArg(cl_krn,2,x1);
CLSetKernelArg(cl_krn,3,y1);
//--- рендерим кадр
CLExecute(cl_krn,2,offset,work);
//--- забираем данные кадра
CLBufferRead(cl_mem,buf);
//--- выведем время рендераComment(IntegerToString(GetTickCount()-x)+" msec per frame");
//--- сохраняем кадр в памяти и рисуем его
SaveBitmapToFile("Mandelbrot"+IntegerToString(fileidx)+".bmp",buf,info);
ObjectSetString(0,"x",OBJPROP_BMPFILE,NULL);
ObjectSetString(0,"x",OBJPROP_BMPFILE,"\\Files\\Mandelbrot"+IntegerToString(fileidx)+".bmp");
ChartRedraw();
//--- небольшая задержка и обновление параметров для следующего кадраSleep(10);
x0+=0.001 f;
x1-=0.001 f;
y0+=0.001 f;
y1-=0.001 f;
}
//--- удаляем объекты OpenCL
CLBufferFree(cl_mem);
CLKernelFree(cl_krn);
CLProgramFree(cl_prg);
CLContextFree(cl_ctx);
}
//+------------------------------------------------------------------+
Si prega di notare che più script che utilizzano OpenCL allo stesso tempo possono portare a una perdita non lineare delle prestazioni della GPU.
1. Se stiamo parlando dell'esempio del test di Mandelbrot, notate che l'immagine viene scritta nello stesso file. Ecco perché i diversi thread si rovinano a vicenda il file BMP.
Provate questo script - funziona con ogni thread (rand) con la propria immagine e non va più in conflitto:
2. ma tenete a mente che più script che usano OpenCL allo stesso tempo danno una perdita non lineare delle prestazioni della GPU.
Ho aggiornato il driver (l'installazione è andata bene) ma ControlCenter ora manca completamente dalla barra delle applicazioni e non può nemmeno essere lanciato manualmente. È tutto a posto?
Ho avuto lo stesso problema quando ho scaricato il software del driver di Vista da Win7 e ControlCenter è apparso nella mia barra di sistema
Puoi dirmi se c'è un emulatore OpenCL http://developer.amd.com/zones/opensource/pages/ocl-emu.aspx, è conveniente cambiare il codice sul portatile durante un giorno e poi usarlo sul PC per l'ottimizzazione. Presumo che MT5 non funzionerà con l'emulatore OpenCL?
IgorM:
che MT5 non funzionerà con l'emulatore OpenCL?
Mentre il terminale usa rigidamente OpenCL solo su GPU, nella prossima build aggiungeremo l'uso automatico della CPU se non c'è una GPU.
Ho avuto lo stesso problema quando ho installato il software del driver di Vista su Win7, poi l'ho scaricato per Win7 e ControlCenter è apparso nel mio vassoio
Puoi dirmi, c'è un emulatore OpenCL http://developer.amd.com/zones/opensource/pages/ocl-emu.aspx, è comodo per cambiare il codice sul portatile durante il giorno, e poi usarlo sul PC per scopi di ottimizzazione, presumo che MT5 non funzionerà con l'emulatore OpenCL ?
1. Credo di avere la versione giusta. L'ho preso da qui: http: //developer.amd.com/Downloads/AMD-APP-SDK-v2.6-Windows-64.exe
2. Naturalmente MT5 non funzionerà con l'emulatore. Ma può essere usato per il debug e i programmi pronti (debuggati) possono essere inseriti nel codice mql5.
Ho scaricato anche l'emulatore. Non ho ancora avuto modo di usarlo.
1. Sembra essere la versione giusta. L'ho preso da qui: http: //developer.amd.com/Downloads/AMD-APP-SDK-v2.6-Windows-64.exe
C'è stato un intoppo, sono d'accordo. Ma è scomparso dopo un riavvio... Ora ho l'icona, la uso sempre per controllare la temperatura e la velocità di raffreddamento, quindi non posso andare da nessuna parte senza.
Sono d'accordo con IgorM che scarico sempre i driver da http://sites.amd.com/us/game/downloads/Pages/radeon_win7-64.aspx ( link alla pagina HD 6xxx WIN7 x64).
E il centro Catalyst stesso per la stessa versione: http://www2.ati.com/drivers/12-1_vista_win7_64_dd_ccc.exe
1. c'è stato un problema tecnico, sono d'accordo. Ma è scomparso dopo un riavvio... Ora c'è un'icona, la uso sempre per controllare la temperatura e la velocità di raffreddamento, quindi non posso andare da nessuna parte senza.
2. Sono d'accordo con IgorM, scarico sempre il driver da http://sites.amd.com/us/game/downloads/Pages/radeon_win7-64.aspx ( link alla pagina per HD 6xxx WIN7 x64).
3. e il centro Catalyst stesso per la stessa versione: http://www2.ati.com/drivers/12-1_vista_win7_64_dd_ccc.exe
1. Non ho niente, il riavvio non aiuta.
Sembra che gli manchi qualche dll per essere felice, vi chiederò se posso scoprirlo. :) // se yandex non può aiutare.
// Per quanto riguarda i refrigeratori, li tengo d'occhio bene. AI Suite II è vivo e funzionante, solo Catalist Control Center è morto.
2. Sto cercando tutto anche lì. Tutto funziona, e anche Catalist funzionava, finché non ho spostato la nuova versione.
3. Ho lo stesso file. 151765KB sul mio disco, se ne hai bisogno. :)
Grazie per le risposte.
Renat, che mi dici del multithreading? Ho eseguito diversi script di test su diversi grafici e hanno iniziato a mischiare le loro letture, rubando i buffer l'uno dall'altro per tutto il tempo.
// Ho cancellato il monitor, ho dato un calcio all'unità di sistema - niente aiuta.
Renat, che mi dici del multithreading? Ho eseguito diversi script di prova su diversi grafici e hanno iniziato a mischiare le loro letture, rubando i buffer l'uno dall'altro per tutto il tempo.
// Ho cancellato il monitor, ho dato un calcio all'unità di sistema - non funziona niente.
Se stiamo parlando dell'esempio del test di Mandelbrot, notate che l'immagine viene scritta nello stesso file. Ecco perché sembra che diversi thread rovinino il file BMP dell'altro.
Provate questo script - funziona (rand) con ogni filo e non va più in conflitto:
Si prega di notare che più script che utilizzano OpenCL allo stesso tempo possono portare a una perdita non lineare delle prestazioni della GPU.
1. Se stiamo parlando dell'esempio del test di Mandelbrot, notate che l'immagine viene scritta nello stesso file. Ecco perché i diversi thread si rovinano a vicenda il file BMP.
Provate questo script - funziona con ogni thread (rand) con la propria immagine e non va più in conflitto:
2. ma tenete a mente che più script che usano OpenCL allo stesso tempo danno una perdita non lineare delle prestazioni della GPU.
1. Merda! Avrei potuto indovinarlo io stesso, scusate il rumore eccessivo.
Guardò lo scettico. Esatto, sì. Solo meglio.
Per quello che vale...
2. Questo è quello che volevo vedere, solo per considerare... :)
MetaDriver:
...3. Beh, è lo stesso file che ho. 151765KB su disco, semmai. :)
...
Il file superiore è un download dal mio, quello inferiore dal tuo link. Dimensione completamente diversa.... )