             return function
         }
         /// If not cached, compile using NVRTC
-        log("Loading CUDA kernel \'\(source)\' for \(T.self)...\n")
+        log("Loading CUDA kernel \'\(source) \(transformation)\' for \(T.self)...\n")
         let ptx = try! Compiler.compile(
             source.rawValue,
             options: [


        var hashValue: Int {
            return type.hashValue ^ source.hashValue &+
                (functor?.hashValue ?? 0x00ff) ^ (operation?.hashValue ?? 0xff00)
        }

        init(type: KernelDataType, source: StaticString,

            return function
        }
        /// If not cached, compile using NVRTC
        log("Loading CUDA kernel \'\(source) \(operation)\' for \(T.self)...\n")
        let ptx = try! Compiler.compile(
            source.rawValue,
            options: [
