[Bug 82581] CL_DEVICE_MAX_COMPUTE_UNITS increases by 100 every time runpm powers on 7970M pitcairn

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Mon Aug 18 12:02:22 PDT 2014


https://bugzilla.kernel.org/show_bug.cgi?id=82581

--- Comment #2 from Christoph Haag <haagch.christoph at googlemail.com> ---
It helps for the issue of increasing.

But now it always returns 100.

I don't think the HD 7970M has 100 compute units.

http://www.amd.com/de-de/products/graphics/notebook/7900m#2
says
"20 Compute Units (1280 Stream Processors)"

To see how it adds up to 100 I added some debug info like this:

printk("rdbg max_shader_engines: %d\n", rdev->config.si.max_shader_engines);
printk("rdbg max_sh_per_se: %d\n", rdev->config.si.max_sh_per_se);
printk("rdbg max_cu_per_sh: %d\n", rdev->config.si.max_cu_per_sh);
for (i = 0; i < rdev->config.si.max_shader_engines; i++) {
        for (j = 0; j < rdev->config.si.max_sh_per_se; j++) {
                for (k = 0; k < rdev->config.si.max_cu_per_sh; k++) {
                        rdev->config.si.active_cus +=
                                hweight32(si_get_cu_active_bitmap(rdev, i, j));
                        printk("rdbg inner: rdev->config.si.active_cus: %d,
hweight32(si_get_cu_active_bitmap(rdev, %d, %d)): %d\n",
rdev->config.si.active_cus, i, j, hweight32(si_get_cu_active_bitmap(rdev, i,
j)));
                }
        }
}

And then I got this output:

rdbg max_shader_engines: 2
rdbg max_sh_per_se: 2
rdbg max_cu_per_sh: 5
rdbg inner: rdev->config.si.active_cus: 5,
hweight32(si_get_cu_active_bitmap(rdev, 0, 0)): 5
rdbg inner: rdev->config.si.active_cus: 10,
hweight32(si_get_cu_active_bitmap(rdev, 0, 0)): 5
rdbg inner: rdev->config.si.active_cus: 15,
hweight32(si_get_cu_active_bitmap(rdev, 0, 0)): 5
rdbg inner: rdev->config.si.active_cus: 20,
hweight32(si_get_cu_active_bitmap(rdev, 0, 0)): 5
rdbg inner: rdev->config.si.active_cus: 25,
hweight32(si_get_cu_active_bitmap(rdev, 0, 0)): 5
rdbg inner: rdev->config.si.active_cus: 30,
hweight32(si_get_cu_active_bitmap(rdev, 0, 1)): 5
rdbg inner: rdev->config.si.active_cus: 35,
hweight32(si_get_cu_active_bitmap(rdev, 0, 1)): 5
rdbg inner: rdev->config.si.active_cus: 40,
hweight32(si_get_cu_active_bitmap(rdev, 0, 1)): 5
rdbg inner: rdev->config.si.active_cus: 45,
hweight32(si_get_cu_active_bitmap(rdev, 0, 1)): 5
rdbg inner: rdev->config.si.active_cus: 50,
hweight32(si_get_cu_active_bitmap(rdev, 0, 1)): 5
rdbg inner: rdev->config.si.active_cus: 55,
hweight32(si_get_cu_active_bitmap(rdev, 1, 0)): 5
rdbg inner: rdev->config.si.active_cus: 60,
hweight32(si_get_cu_active_bitmap(rdev, 1, 0)): 5
rdbg inner: rdev->config.si.active_cus: 65,
hweight32(si_get_cu_active_bitmap(rdev, 1, 0)): 5
rdbg inner: rdev->config.si.active_cus: 70,
hweight32(si_get_cu_active_bitmap(rdev, 1, 0)): 5
rdbg inner: rdev->config.si.active_cus: 75,
hweight32(si_get_cu_active_bitmap(rdev, 1, 0)): 5
rdbg inner: rdev->config.si.active_cus: 80,
hweight32(si_get_cu_active_bitmap(rdev, 1, 1)): 5
rdbg inner: rdev->config.si.active_cus: 85,
hweight32(si_get_cu_active_bitmap(rdev, 1, 1)): 5
rdbg inner: rdev->config.si.active_cus: 90,
hweight32(si_get_cu_active_bitmap(rdev, 1, 1)): 5
rdbg inner: rdev->config.si.active_cus: 95,
hweight32(si_get_cu_active_bitmap(rdev, 1, 1)): 5
rdbg inner: rdev->config.si.active_cus: 100,
hweight32(si_get_cu_active_bitmap(rdev, 1, 1)): 5

I think the k loop is already iterating over the compute units, but instead of
1 unit being added to the total, the result of si_get_cu_active_bitmap is
added, which also seems to add up the compute units.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the dri-devel mailing list