Let's say you have a computer with two physical CPU sockets. If you put two CPUs on there, how does the ATI Stream treat them when computing? Is it able to use both CPUs at the same time automatically like with OpenMP or do you have to manually split up your code/data for each CPU?
All cpus get aggregated into a single cpu device, the number of compute units should be equal to your indivial cpu dies (aka multicore cpus show up as one compute unit).
For example, my system has 4x AMD Opteron 2216 (Dual Cores) and my CLInfo output for the CPU is:
Device Type: CL_DEVICE_TYPE_CPU Device ID: 4098 Max compute units: 4 Max work items dimensions: 3 Max work items: 1024 Max work items: 1024 Max work items: 1024 Max work group size: 1024 Preferred vector width char: 16 Preferred vector width short: 8 Preferred vector width int: 4 Preferred vector width long: 2 Preferred vector width float: 4 Preferred vector width double: 0 Max clock frequency: 1000Mhz Address bits: 64 Max memory allocation: 1073741824 Image support: No Max size of kernel argument: 4096 Alignment (bits) of base address: 1024 Minimum alignment (bytes) for any datatype: 128 Single precision floating point capability Denorms: Yes Quiet NaNs: Yes Round to nearest even: Yes Round to zero: No Round to +ve and infinity: No IEEE754-2008 fused multiply-add: No Cache type: Read/Write Cache line size: 64 Cache size: 65536 Global memory size: 3221225472 Constant buffer size: 65536 Max number of constant args: 8 Local memory type: Global Local memory size: 32768 Profiling timer resolution: 1 Device endianess: Little Available: Yes Compiler available: Yes Execution capabilities: Execute OpenCL kernels: Yes Execute native function: No Queue properties: Out-of-Order: No Profiling : Yes Platform ID: 0x7f59ee162228 Name: Dual-Core AMD Opteron(tm) Processor 2216 Vendor: AuthenticAMD Driver version: 1.1 Profile: FULL_PROFILE Version: OpenCL 1.0 ATI-Stream-v2.1 (145) Extensions: cl_khr_icd cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_printf