Accessing both GPUs on a 4870x2 (using OpenCL) [RESOLVED]

Discussion created by johnrdore on Jul 19, 2010
Latest reply on Jul 21, 2010 by johnrdore
and a few other questions


I'm fairly new to GPU programming and OpenCL. I was wondering if anyone could give me some advice on a few questions.

I have two Sapphire Radeon HD 4870x2 cards installed (with CrossFire disabled) on a 64-bit Ubuntu 10.04 machine. I'm using the ATI Catalyst 10.6 driver and Stream SDK v2.1.

Firstly, each Radeon card has two GPU cores on it (aticonfig --lsa shows four adapters), but it seems that ./FindNumDevices only detects two "devices" (i.e. each dual-core card is a single device, not two separate devices). From what I've read on the other threads in this forum, this is the correct behavior and it is not currently possible to use Stream to access each GPU core individually. However:

1) Are there any plans to add this functionality to the SDK in the future?

2) Does anyone know if both GPU cores are actually being used when a card is processing a task, or is Catalyst only driving one of the GPU cores on each card?

On an unrelated note, I looked through the output of ./CLInfo and was wondering:

3) The "image support" is set to "no" for my CPU device and both my GPU devices. Is this normal?

4) The global memory size for each GPU device is reported as "268435456". This translates to 256 megabytes if that figure is in bytes, but I thought that each 4870x2 card has 2GB memory (1GB per core). Am I confusing bits and bytes here, or being otherwise silly?

Many thanks