Very recently I bought the budget "business" laptop referred to in the title to this thread. It's obviously no beefy hardware and does not come with an additional cross-fire dGPU. I bought it nevertheless as a mobile entry-level APU to give OpenCL 2.0 programming a spin. I am using a 64bit Linux system (Slackware-current) with the latest OpenCL2.0 compliant Omega fglrx driver installed. But when typing clinfo into the command line it says that atomics and fine-grain system SVM are not supported.
SVM capabilities: Coarse grain buffer: Yes Fine grain buffer: Yes Fine grain system: No Atomics: No
I was reading some other threads about IOMMU and its apparent role played in relation to this programming feature. In my laptop's BIOS there is no explicit option for enabling IOMMU, but there *is* an option for enabling AMD's hardware virtualization features. I don't know if these two things are related, but I often see discussion threads on the internet linking these two issue. I would like to use all advanced OpenCL2.0 SVM features and was wondering if this can be done on my humble hardware. At the moment the only message relevant to this I see when grepping the output from dmesg is the diagnostics message line from the AMD IOMMU driver:
[ 6.769907] AMD IOMMUv2 driver by Joerg Roedel <firstname.lastname@example.org> [ 6.777046] AMD IOMMUv2 functionality not available on this system
I also found these message shown during boot-up:
[ 0.000000] Your BIOS doesn't leave a aperture memory hole [ 0.000000] Please enable the IOMMU option in the BIOS setup
I can make the upper two error messages during boot-up disappear by appending to the linux kernel in the lilo.conf file "iommu=noaperture". That however does not deal with my underlying problem. I have also experimented with the "amd_iommu=on" kernel boot option (in combination with "iommu=noaperture"), but still my problem remains that advanced fine-grain SVM features remain disabled. Finally I also tried passing "iommu=soft" combined with "amd_iommu=off" as suggested in some forums - again no luck in enabling the more advanced (or more granular) SVM features. I am beginning to ask myself though whether having access to coarse- and fine-grained buffers would not already be more than sufficient for many interesting and conceivable programming contexts implemented on my humble 256 GPU-core AMD APU. Maybe system fine-grain SVM and atomics are a bit of an overkill, given that they also result in performance penalties.
(Update 25/01/2015 - I think I might have found the answer. My laptop probably only supports AMD-V in its BIOS and probably not AMD-Vi, but I am not 100% certain because the BIOS only refers to this functionality as "AMD Virtualization hardware features")
Thanks for any pointers on how to resolve/fix this issue