• This repository has been archived on 18/Mar/2023
  • Stars
    star
    223
  • Rank 178,458 (Top 4 %)
  • Language
    Julia
  • License
    Other
  • Created over 6 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Julia on TPUs

XLA.jl - Compiling Julia to XLA

NOTE: We're in the process of adding better instructions. Check back in a bit.

Getting started on TPUs

Running on Colab

Google currently offers free access to Cloud TPUs through its Colab notebook service. Colab does not officially support julia at the moment, but it is possible to install julia by manually installing it into the runtime (though this has to be done every time the runtime gets reset). By this mechanism, you can get access to TPUs through the notebook interface. Start with the installation notebook in docs/colab/InstallJuliaXLA.ipynb:

Open in Colab
Run in Google Colab

Afterwards, any JuliaTPU notebook should work if opened without resetting the runtime in between.

Running on GCP

The process for setting up this repository to run against TPUs is much the same as the process for setting up the repository locally. However, since there is additional steps involved in launching the actual TPU, we are providing a tutorial to walk you through all the steps. It is recommended for those new to Julia and/or TPUs. If you're already familiar with both, you may skip the tutorial and just use the setup guide below. The tutorial will open in Google Cloud Shell, by clicking the button below:

Open in Cloud Shell

Getting started (CPU/GPU backend)

  • Grab julia on branch kf/tpu3 (Prebuilt Linux x86_64 binaries with TPU support are available here)
  • Instantiate this repo
  • julia> using TensorFlow
  • Get yourself an xrt_server (either running it locally via run(`$(joinpath(dirname(pathof(TensorFlow)),"..","deps","downloads","bin","xrt_server"))`) or by spinning up a Google Cloud TPU and starting an SSH tunnel to expose its port to the world) and connect it to localhost:8470
  • Run the script in examples/vgg_forward.jl

More Repositories

1

CUDA.jl

CUDA programming in Julia.
Julia
1,204
star
2

CUDAnative.jl

Julia support for native CUDA programming
Julia
392
star
3

KernelAbstractions.jl

Heterogeneous programming in Julia
Julia
369
star
4

Metal.jl

Metal programming in Julia
Julia
346
star
5

GPUArrays.jl

Reusable array functionality for Julia's various GPU backends.
Julia
316
star
6

CuArrays.jl

A Curious Cumulation of CUDA Cuisine
Julia
281
star
7

AMDGPU.jl

AMD GPU (ROCm) programming in Julia
Julia
278
star
8

OpenCL.jl

OpenCL Julia bindings
Julia
265
star
9

ArrayFire.jl

Julia wrapper for the ArrayFire library
Julia
204
star
10

oneAPI.jl

Julia support for the oneAPI programming toolkit.
Julia
178
star
11

GPUCompiler.jl

Reusable compiler infrastructure for Julia GPU backends.
Julia
153
star
12

Vulkan.jl

Using Vulkan from Julia
Julia
108
star
13

Adapt.jl

Julia
89
star
14

GemmKernels.jl

Flexible and performant GEMM kernels in Julia
Julia
77
star
15

VulkanCore.jl

Julia bindings for the Vulkan API
Julia
75
star
16

CUDAdrv.jl

A Julia wrapper for the CUDA driver API.
Julia
67
star
17

CLArrays.jl

OpenCL-backed GPU Arrays
Julia
62
star
18

AMDGPUnative.jl

Julia interface to AMD/Radeon GPUs
Julia
55
star
19

DaggerGPU.jl

GPU integrations for Dagger.jl
Julia
50
star
20

NVTX.jl

Julia bindings for NVTX, for instrumenting with the Nvidia Nsight Systems profiler
Julia
26
star
21

gitlab-ci

Resources related to the JuliaGPU GitLab CI.
Dockerfile
25
star
22

NCCL.jl

A Julia wrapper for the NVIDIA Collective Communications Library.
Julia
24
star
23

juliagpu.org

The JuliaGPU landing page.
HTML
23
star
24

CLBLAS.jl

CLBLAS integration for Julia
Julia
22
star
25

docker

Docker recipes for Julia builds with JuliaGPU packages.
Julia
21
star
26

buildkite

Shell
21
star
27

ROCArrays.jl

Parallel on the ROCks
Julia
18
star
28

julia-ngc

Dockerfile
17
star
29

CLFFT.jl

Julia bindings for AMD's clFFT library
Julia
16
star
30

CUDAapi.jl

Reusable components for CUDA API development.
Julia
16
star
31

HSARuntime.jl

Julia interface to the HSA runtime, for supporting AMD GPUs
Julia
15
star
32

Learning

Learning materials for GPU programming in Julia.
Jupyter Notebook
14
star
33

CLBlast.jl

Julia wrapper of CLBlast, a "tuned OpenCL BLAS library".
Julia
13
star
34

CUDAnativelib.jl

Julia
12
star
35

AMGX.jl

Julia
11
star
36

GPUBenchmarks.jl

Benchmarking Julia's GPUArray packages
Julia
8
star
37

HSA.jl

Julia Bindings for the HSA Runtime
Julia
8
star
38

BinomialGPU.jl

A Julia package for sampling binomial random variates on an nVidia GPU
Julia
7
star
39

GPUShowcases.jl

Indepth examples and show cases for GPUArrays
Julia
6
star
40

CUDABuilder

Julia
6
star
41

SPIRV.jl

SPIRV codegen for Julia
Julia
4
star
42

meta

Place for discussing general Julia GPGPU related topics
4
star
43

ROCTX.jl

Julia bindings for ROC-TX
Julia
2
star
44

NVVM.jl

Julia interface to the NVIDIA NVVM compiler library.
Julia
2
star
45

CUDA_Driver.jl

Julia
1
star
46

ROCmDeviceLibsDownloader

A BB "builder" repository for ROCm-Device-Libs bitcode
Julia
1
star