Machine Learning in Elixir: XLA on windows (page 37)

@seanmor5

I want to install the dependencies for chapter 2.

Mix.install([
  {:nx, "~> 0.5"},
  {:exla, "~> 0.5"},
  {:benchee, "~> 1.0"}
])

Throws the error, that xla has to be bild manually, by setting a variable.

** (RuntimeError) none of the precompiled archives matches your target
Expected:
* xla_extension-x86_64-windows-cpu.tar.gz
Found:
* xla_extension-aarch64-darwin-cpu.tar.gz
* xla_extension-aarch64-linux-gnu-cpu.tar.gz
* xla_extension-x86_64-darwin-cpu.tar.gz
* xla_extension-x86_64-linux-gnu-cpu.tar.gz
* xla_extension-x86_64-linux-gnu-cuda111.tar.gz
* xla_extension-x86_64-linux-gnu-cuda114.tar.gz
* xla_extension-x86_64-linux-gnu-cuda118.tar.gz
* xla_extension-x86_64-linux-gnu-tpu.tar.gz
* xla_extension-x86_64-linux-musl-cpu.tar.gz

You can compile XLA locally by setting an environment variable: XLA_BUILD=true
(xla 0.4.4) lib/xla.ex:186: XLA.download_matching!/1
(xla 0.4.4) lib/xla.ex:33: XLA.archive_path!/0
c:/Users/sebas/AppData/Local/mix/Cache/installs/elixir-1.15.2-erts-14.0.2/6caf7d0a4b4a76b7f067904efa544804/deps/exla/mix.exs:112: EXLA.MixProject.extract_xla/1
(mix 1.15.2) lib/mix/task.ex:519: Mix.Task.run_alias/6
(mix 1.15.2) lib/mix/tasks/compile.all.ex:124: Mix.Tasks.Compile.All.run_compiler/2
(mix 1.15.2) lib/mix/tasks/compile.all.ex:104: Mix.Tasks.Compile.All.compile/4
(mix 1.15.2) lib/mix/tasks/compile.all.ex:93: Mix.Tasks.Compile.All.with_logger_app/2
f:/Programmierung/Elixir/machine_learning_in_elixir/ch02_get_comfortable_with_Nx.livemd#cell:setup:1: (file)

How is this done?

As alternative I I tried to use torchx:

** (Mix.Error) “nmake” not found in the path. If you have set the MAKE environment variable, please make sure it is correct.

(mix 1.15.2) lib/mix.ex:577: Mix.raise/2
(elixir_make 0.7.7) lib/elixir_make/compiler.ex:115: ElixirMake.Compiler.cmd/5
(elixir_make 0.7.7) lib/elixir_make/compiler.ex:92: ElixirMake.Compiler.make/2
(elixir_make 0.7.7) lib/elixir_make/compiler.ex:53: ElixirMake.Compiler.compile/1
(mix 1.15.2) lib/mix/task.ex:447: anonymous fn/3 in Mix.Task.run_task/5
(mix 1.15.2) lib/mix/tasks/compile.all.ex:124: Mix.Tasks.Compile.All.run_compiler/2
(mix 1.15.2) lib/mix/tasks/compile.all.ex:104: Mix.Tasks.Compile.All.compile/4
f:/Programmierung/Elixir/machine_learning_in_elixir/ch02_get_comfortable_with_Nx.livemd#cell:setup:1: (file)