diff --git a/pyopencl/characterize.py b/pyopencl/characterize.py
index 27a8438a0f095cbde81edcc601bab012ea850dd6..02afd223736d892c084d0aaa9956a590f1be0f40 100644
--- a/pyopencl/characterize.py
+++ b/pyopencl/characterize.py
@@ -43,18 +43,23 @@ def reasonable_work_group_size_multiple(dev, ctx=None):
 
 
 
+def get_nv_compute_capability(dev):
+    try:
+        return (dev.compute_capability_major_nv,
+                dev.compute_capability_minor_nv)
+    except:
+        return None
+
+
+
+
 def usable_local_mem_size(dev, nargs=None):
     """Return an estimate of the usable local memory size.
     :arg nargs: Number of 32-bit arguments passed.
     """
     usable_local_mem_size = dev.local_mem_size
 
-    try:
-        nv_compute_cap = (dev.compute_capability_major_nv,
-                dev.compute_capability_minor_nv)
-    except AttributeError:
-        nv_compute_cap = None
-
+    nv_compute_cap = get_nv_compute_capability(dev)
 
     if (nv_compute_cap is not None 
             and nv_compute_cap < (2,0)):