0

I am doing trials with device fission used on FX8150 7-cores device and 1 core for hosting. Then put some workload of array of 51200 floats. Calculation is done on O(N*N)(trigonometric) basis. When run first time, it uses only 3 cores then second run uses 7 cores and last run uses 3 cores again. Could this be a random occupation issue? Because sometimes hosting thread can get in way and change the time it completes. This is done in jocl.

Sometimes even the first run uses 7 cores and later starts using only 5 cores. Looks like random. Even trying even number of cores like 4-6 makes same behaviour. Maybe it is the windows-7 64-bit module utilisation thing, the sharing of resources? Needs at least 50-200 runs to be completely stable in terms of number of cores used. Maybe the just in time compiler and hot-spot kicked in? Thanks.

huseyin tugrul buyukisik
  • 11,469
  • 4
  • 45
  • 97
  • Are you calling clFlush after queuing the kernel to make sure computation starts? The OpenCL spec clearly states that computation does not necessarily start until the queue is flushed or a blocking operation is performed on the command queue. Do you use multiple command queues? – doug65536 May 31 '13 at 02:56
  • Yes, I am using multiple queues because GPU starts sharp temperature increases and decreases as program starts dataflow after single computation. I just add some tiring kernel while program makes dataflow in the same time gpu does inplace computation to preserve temperature. Why? Because I fear heat-cycles of 10-12 degrees high 4-5 times per second. Also I realized that I had to take the last core elemnts given by device fission in order to use properly. – huseyin tugrul buyukisik May 31 '13 at 12:04
  • You're limiting the cores your kernel runs on because you fear it will heat up too much? Your hardware is supposed to handle that itself. It is the software's job to run as fast as it can and the hardware will protect itself as needed. – Dithermaster Jun 02 '13 at 14:24

0 Answers0