diff --git a/src/pairs/code_gen/cgen.py b/src/pairs/code_gen/cgen.py
index 7b05e17aca1ec49d134aed4f2b78a615ec4846e8..7f0a05ec19ca51171e297d4c5252007d6172dab3 100644
--- a/src/pairs/code_gen/cgen.py
+++ b/src/pairs/code_gen/cgen.py
@@ -50,6 +50,16 @@ class CGen:
         self.print("")
         self.print("using namespace pairs;")
         self.print("")
+
+        if self.target.is_gpu():
+            for array in self.sim.arrays.statics():
+                if array.device_flag:
+                    t = array.type()
+                    tkw = Types.ctype2keyword(t)
+                    size = self.generate_expression(BinOp.inline(array.alloc_size()))
+                    self.print(f"__constant__ {tkw} d_{array.name()}[{size}];")
+
+        self.print("")
         for module in self.sim.modules():
             self.generate_module(module)
         self.print.end()
diff --git a/src/pairs/ir/arrays.py b/src/pairs/ir/arrays.py
index 8316fc074cecffc578ca897008fea8d705164f8c..1ca7ca8bc3d1bbe9c13943ceb39ea4a16882349a 100644
--- a/src/pairs/ir/arrays.py
+++ b/src/pairs/ir/arrays.py
@@ -27,6 +27,9 @@ class Arrays:
     def all(self):
         return self.arrays
 
+    def statics(self):
+        return [a for a in self.arrays if a.is_static()]
+
     def find(self, a_name):
         array = [a for a in self.arrays if a.name() == a_name]
         if array: