diff --git a/hercules_cg/Cargo.toml b/hercules_cg/Cargo.toml
index cf0767de04c81e35974a7aca89e9085b543e1a9d..0952ee57e0dd9e4b8f7e9639e10a3f2b0fc35a72 100644
--- a/hercules_cg/Cargo.toml
+++ b/hercules_cg/Cargo.toml
@@ -4,6 +4,9 @@ version = "0.1.0"
 authors = ["Russel Arbore <rarbore2@illinois.edu>"]
 edition = "2021"
 
+[features]
+cuda = []
+
 [dependencies]
 rand = "*"
 ordered-float = "*"
diff --git a/hercules_cg/src/device.rs b/hercules_cg/src/device.rs
index 866fa6adeeb41c2c8106a1b7de5ce1ffdc45db40..9f71c1a7d108c4a21e04c8bebc95bc6d18c32e80 100644
--- a/hercules_cg/src/device.rs
+++ b/hercules_cg/src/device.rs
@@ -13,6 +13,8 @@ pub fn device_placement(functions: &Vec<Function>, callgraph: &CallGraph) -> Vec
             devices.push(device);
         } else if function.entry || callgraph.num_callees(FunctionID::new(idx)) != 0 {
             devices.push(Device::AsyncRust);
+        } else if cfg!(feature = "cuda") {
+            devices.push(Device::CUDA);
         } else {
             devices.push(Device::LLVM);
         }