# How to add CUDA as optional dependency?

**URL:** https://discourse.julialang.org/t/how-to-add-cuda-as-optional-dependency/73077
**Category:** GPU
**Tags:** question, gpu, pkg
**Created:** [December 14, 2021, 2:54pm UTC](https://discourse.julialang.org/t/how-to-add-cuda-as-optional-dependency/73077 "2021-12-14T14:54:00Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![josuagrw](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/josuagrw/32/1015_2.png) [@josuagrw](https://discourse.julialang.org/u/josuagrw)
#### Post date: [December 14, 2021, 3:56pm UTC](https://discourse.julialang.org/t/how-to-add-cuda-as-optional-dependency/73077/2 "2021-12-14T15:56:55Z")

</div>

This is probably not what you are looking for but in principle you could split up your code into three parts: general, GPU-specific, and CPU-specific.

Then users could do something like:

```julia
using GeneralPackage, GPUPackage

result = GeneralPackage.calculate(inputs, GPUPackage.Engine())

```

or conversely

```julia
using GeneralPackage, CPUPackage

result = GeneralPackage.calculate(inputs, CPUPackage.Engine())

```

---

_[View the full topic](https://discourse.julialang.org/t/how-to-add-cuda-as-optional-dependency/73077)._
