The Device class abstracts computational hardware, allowing Neurenix to run on various platforms including CPU, CUDA, ROCm, TPU, NPU, WebGPU, and more.
import neurenix as nxfrom neurenix.device import Device, DeviceType, get_device, get_available_devices# Create a CPU devicecpu = Device(DeviceType.CPU)print(cpu.name) # "CPU"# Create a CUDA devicecuda = Device(DeviceType.CUDA, index=0)print(cuda.name) # "CUDA:0"# Create a TPU devicetpu = Device(DeviceType.TPU, index=0)# Get device from stringdevice = get_device("cuda:1")print(device.type) # DeviceType.CUDAprint(device.index) # 1# Get available devicesdevices = get_available_devices()for dev in devices: print(f"Available: {dev.name}")# Get device countcuda_count = get_device_count(DeviceType.CUDA)print(f"CUDA devices: {cuda_count}")# Use device with tensorstensor = nx.Tensor([1, 2, 3], device=cuda)print(tensor.device.name) # "CUDA:0"# Move tensor to different devicetensor_cpu = tensor.to(cpu)print(tensor_cpu.device.name) # "CPU"# Create WebGPU device for edge deploymentwebgpu = Device(DeviceType.WEBGPU, index=0)# Create NPU device for mobile AInpu = Device(DeviceType.NPU, index=0)