I have several questions regarding running CAL on a Radeon HD3870 X2 with 1GB RAM. I'm using CAL SDK 1.0.2beta under XP 32.
The first thing I did was write a simple program that queries the available hardware. Turns out that each X2 core is detected as a separate CAL device. As far as I understand it, the two cores are automatically linked via Crossfire, but I am unclear on how Crossfire affects kernel execution in this configuration.
(1) Do I need to call calDeviceOpen() on both devices to take advantage of both cores or will interacting with device 0 be enough?
(2) On a related note, is it possible to run different kernels on each core? (I'm guessing "no" on this one due to Crossfire)
I querried the devices using calDeviceGetAttribs(), calDeviceGetStatus(), and calDeviceGetInfo(). The following is the output of my program (source code available upon request):
Cal version 1.0.0
2 devices detected
Device 0:
Target: 670 (Radeon HD 3870)
Local RAM: 192 MB (175 MB available)
Uncached Remote RAM: 256 MB (242 MB available)
Cached Remote RAM: 28 MB (27 MB available)
Engine Clock: 169 MHz
Memory Clock: 245 MHz
Device 1:
Target: 670 (Radeon HD 3870)
Local RAM: 192 MB (175 MB available)
Uncached Remote RAM: 256 MB (242 MB available)
Cached Remote RAM: 28 MB (27 MB available)
Engine Clock: 169 MHz
Memory Clock: 245 MHz
I would appreciate some clarification on these values.
(3) The CALdeviceattribs and CALdevicestatus structures specify three types of RAM: Local, Uncached Remote, and Cached Remote. Could someone elaborate on this distinction? According to the CAL Programming Manual, the term "Remote Memory" refers to system memory, i.e., not the memory on the graphics board. Surely there is a different meaning here?
(4) There are 1024 MB of RAM on my board. 72 MB seem to be missing in action (36 MB per core). Where did they go? Note: I'm refering to the numbers obtained from CALdeviceattribs, not CALdevicestatus. 1024 - 2 * (192 + 256 + 28) = 76.
(5) Finally, the clock speeds seem a little low. I'm guessing that this is due to the ATI PowerPlay technology, but again I would appreciate someone clearing this up. Will the clock speeds increase automatically under load? Is there a way to manually control the clock speeds? Catalyst Control Center lists the clock speeds as 825 MHz (engine) and 900 MHz (memory), which sounds right.
Ah, that is all, thank you for reading.
Confused but cautiously optimistic,
Lukasz