Cuda basic 

Cuda basic. Mat) making the transition to the GPU module as smooth as possible. CUDA implementation of matrix multiplication utilizing two distinct approaches: inner product and outer product - Imanm02/MatrixMultiplication-CUDA CUDA enables this unprecedented performance via standard APIs such as the soon to be released OpenCL™ and DirectX® Compute, and high level programming languages such as C/C++, Fortran, Java, Python, and the Microsoft . Net. Then, run the command that is presented to you. CUDA Programming Model Basics. Accelerate Applications on GPUs with OpenACC Directives. With CUDA Jul 1, 2024 · Get started with NVIDIA CUDA. With it, you can develop, optimize, and deploy your applications on GPU-accelerated embedded systems, desktop workstations, enterprise data centers, cloud-based platforms, and supercomputers. To install PyTorch via pip, and do not have a CUDA-capable system or do not require CUDA, in the above selector, choose OS: Windows, Package: Pip and CUDA: None. Download - Windows (x86) Download - Windows (x64) Download - Linux/Mac Jun 25, 2008 · The Nvidia matlab package, while impressive, seems to me to rather miss the mark for a basic introduction to CUDA on matlab. CUDA – Tutorial 1 – Getting Started. The API Reference guide for cuBLAS, the CUDA Basic Linear Algebra Subroutine library. The platform exposes GPUs for general purpose computing. Introduction This guide covers the basic instructions needed to install CUDA and verify that a CUDA application can run on each supported platform. cuda. Straightforward APIs to manage devices, memory etc. These instructions are intended to be used on a clean installation of a supported platform. Download Documentation Samples Support Feedback . Dec 1, 2015 · CUDA Thread Organization CUDA Kernel call: VecAdd<<<Nblocks, Nthreads>>>(d_A, d_B, d_C, N); When a CUDA Kernel is launched, we specify the # of thread blocks and # of threads per block The Nblocks and Nthreads variables, respectively Nblocks * Nthreads = number of threads Tuning parameters. Contribute to Jervis-cd/CUDA-Basic development by creating an account on GitHub. Contribute to siboehm/SGEMM_CUDA development by creating an account on GitHub. Specifically, for devices with compute capability less than 2. Jan 23, 2017 · Don't forget that CUDA cannot benefit every program/algorithm: the CPU is good in performing complex/different operations in relatively small numbers (i. Small set of extensions to enable heterogeneous programming. It allows the user to access the computational resources of NVIDIA Graphics Processing Unit (GPU). Contents 1 TheBenefitsofUsingGPUs 3 2 CUDA®:AGeneral-PurposeParallelComputingPlatformandProgrammingModel 5 3 AScalableProgrammingModel 7 4 DocumentStructure 9 Accelerate Your Applications. EULA. The best way to compare GPU to a CPU is by comparing a sports car with a bus. Train this neural network. Prior to that, you would have need to use a multi-threaded host application with one host thread per GPU and some sort of inter-thread communication system in order to use mutliple GPUs inside the same host application. Aug 29, 2024 · Installing CUDA Development Tools Basic instructions can be found in the Quick Start Guide. My Aim- To Make Engineering Students Life EASY. cuda_GpuMat in Python) which serves as a primary data container. cuda¶ This package adds support for CUDA tensor types. BLAS (Basic Linear Algebra Subprograms), The CUDA Handbook, available from Pearson Education (FTPress. Use this guide to install CUDA. Deep learning solutions need a lot of processing power, like what CUDA capable GPUs can provide. The installation instructions for the CUDA Toolkit on Linux. Now follow the instructions in the NVIDIA CUDA on WSL User Guide and you can start using your exisiting Linux workflows through NVIDIA Docker, or by installing PyTorch or TensorFlow inside WSL. CUDA memory model-Shared and Constant Custom C++ and CUDA Operators; Double Backward with Custom Functions; Fusing Convolution and Batch Norm using Custom Function; Custom C++ and CUDA Extensions; Extending TorchScript with Custom C++ Operators; Extending TorchScript with Custom C++ Classes; Registering a Dispatched Operator in C++; Extending dispatcher for a new backend in C++ torch. The CUDA Toolkit End User License Agreement applies to the NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA Display Driver, NVIDIA Nsight tools (Visual Studio Edition), and the associated documentation on CUDA APIs, programming model and development tools. Nov 19, 2017 · In this introduction, we show one way to use CUDA in Python, and explain some basic principles of CUDA programming. We provide several ways to compile the CUDA kernels and their cpp wrappers, including jit, setuptools and cmake. After a concise introduction to the CUDA platform and architecture, as well as a quick-start guide to CUDA C, the book details the techniques and trade-offs associated with each key CUDA feature. CUDA Execution model. x, which contains the number of blocks in the grid, and blockIdx. Custom C++ and CUDA Operators; Double Backward with Custom Functions; Fusing Convolution and Batch Norm using Custom Function; Custom C++ and CUDA Extensions; Extending TorchScript with Custom C++ Operators; Extending TorchScript with Custom C++ Classes; Registering a Dispatched Operator in C++; Extending dispatcher for a new backend in C++ Aug 7, 2014 · Build your image with the NVIDIA and CUDA driver. Mostly used by the host code, but newer GPU models may access it as well. . 最近因为项目需要,入坑了CUDA,又要开始写很久没碰的C++了。对于CUDA编程以及它所需要的GPU、计算机组成、操作系统等基础知识,我基本上都忘光了,因此也翻了不少教程。这里简单整理一下,给同样有入门需求的… Aug 29, 2024 · CUDA C++ Programming Guide » Contents; v12. The setup of CUDA development tools on a system running the appropriate version of Windows consists of a few simple steps: Verify the system has a CUDA-capable GPU. CUDA is a platform and programming model for CUDA-enabled GPUs. Oct 5, 2021 · The Fundamental GPU Vision. There are many CUDA code samples included as part of the CUDA Toolkit to help you get started on the path of writing software with CUDA C/C++ The code samples covers a wide range of applications and techniques, including: Basic CUDA syntax Each thread computes its overall grid thread id from its position in its block (threadIdx) and its block’s position in the grid (blockIdx) Bulk launch of many CUDA threads “launch a grid of CUDA thread blocks” Call returns when all threads have terminated “Host” code : serial execution Aug 29, 2024 · CUDA C++ Best Practices Guide. is Introducing the CUDA Programming Model 23 CUDA Programming Structure 25 Managing Memory 26 Organizing Threads 30 Launching a CUDA Kernel 36 Writing Your Kernel 37 Verifying Your Kernel 39 Handling Errors 40 Compiling and Executing 40 Timing Your Kernel 43 Timing with CPU Timer 44 Timing with nvprof 47 Organizing Parallel Threads 49 Indexing Matrices with Blocks and Threads 49 Summing Matrices CUDA Basic Detailed Steps Device Memories and Data Transfer Kernel Functions and Threading 2/33. Introduction to CUDA programming and CUDA programming model. We will use CUDA runtime API throughout this tutorial. The Release Notes for the CUDA Toolkit. the CUDA entry point on host side is only a function which is called from C++ code and only the file containing this function is compiled with nvcc. It implements the same function as CPU tensors, but they utilize GPUs for computation. This lowers the burden of programming. CUDA work issued to a capturing stream doesn’t actually run on the GPU. Based on this information, you can allocate more resources, for example, when there is a high system load or the storage is almost full. By leveraging the parallel computing capabilities of GPUs, the project iteratively improves upon the basic implementations to achieve significantly enhanced performance. When I first started dabbling with CUDA, kernels and memory management felt like stumbling blocks. Effectively this means that all device functions and variables needed to be located inside a single file or compilation unit. Oct 3, 2022 · This guide covers the basic instructions needed to install CUDA and verify that a CUDA application can run on each supported platform. If you’re completely new to programming with CUDA, this is probably where you want to start. Host implementations of the common mathematical functions are mapped in a platform-specific way to standard math library functions, provided by the host compiler and respective hos Feb 2, 2022 · The cuBLAS library is an implementation of BLAS (Basic Linear Algebra Subprograms) on top of the NVIDIA®CUDA™ runtime. Before we jump into CUDA C code, those new to CUDA will benefit from a basic description of the CUDA programming model and some of the terminology used. Part of the Nvidia HPC SDK Training, Jan 12-13, 2022. x. In the future, when more CUDA Toolkit libraries are supported, CuPy will have a lighter maintenance overhead and have fewer wheels to release. Let’s talk about spinning up a basic CUDA kernel and managing memory effectively. Aug 29, 2024 · CUDA Math API Reference Manual . Learn about the basics of CUDA from a programming perspective. He has contributed to NVIDIA GPUs for almost 18 years in a variety of roles from performance analysis, developing internal productivity tools and Shader, Raster and Perfmon GPU architecture. Fast CUDA matrix multiplication from scratch. For GPU support, many other frameworks rely on CUDA, these include Caffe2, Keras, MXNet, PyTorch, Torch, and PyTorch. This basic program is just standard C that runs on the host Basic CUDA API for dealing with device memory — cudaMalloc(), cudaFree(), cudaMemcpy() When using CUDA, developers program in popular languages such as C, C++, Fortran, Python and MATLAB and express parallelism through extensions in the form of a few basic keywords. CUDA works with all Nvidia GPUs from the G8x series onwards, including GeForce, Quadro and the Tesla line. CUDA Interprocess Communication IPC (Interprocess Communication) allows processes to share device pointers. Nov 5, 2018 · About Roger Allen Roger Allen is a Principal Architect in the GPU Platform Architecture group. Sep 16, 2022 · CUDA enables developers to speed up compute-intensive applications by harnessing the power of GPUs for the parallelizable part of the computation. The most basic of these commands enable you to verify that you have the required CUDA libraries and NVIDIA drivers, and that you have an available GPU to work with. Learn using step-by-step instructions, video tutorials and code samples. Jun 26, 2020 · CUDA code also provides for data transfer between host and device memory, over the PCIe bus. It indicates code that will run on the device. Introduction CUDA ® is a parallel computing platform and programming model invented by NVIDIA ®. Basic Linear Algebra on NVIDIA GPUs. We choose to use the Open Source package Numba. Its interface is similar to cv::Mat (cv2. Share feedback on NVIDIA's support via their Community forum for CUDA on WSL. The entire kernel is wrapped in triple quotes to form a string. Expose GPU computing for general purpose. This tutorial helps point the way to you getting CUDA up and running on your computer, even if you don’t have a CUDA-capable nVidia graphics chip. < 10 threads/processes) while the full power of the GPU is unleashed when it can do simple/the same operations on massive numbers of threads/data points (i. The first part allocate memory space on Dataset and DataLoader¶. CUDA Tutorial - CUDA is a parallel computing platform and an API model that was developed by Nvidia. 6 | PDF | Archive Contents Mar 13, 2023 · Intro 在CUDA中,host和device是两个重要的概念,我们用host指代CPU及其内存,而用device指代GPU及其内存。CUDA程序中既包含host程序,又包含device程序,它们分别在CPU和GPU上运行。一个CUDA程序的执行流程如下: 分配host内存,并进行数据初始化; 分配device内存,并从host将数据拷贝到device上; 调用CUDA的核 Aug 16, 2022 · The Basic section provides important status information for Barracuda Firewall Insights, such as system health and used resources. How to Use CUDA with PyTorch. Apr 26, 2024 · CUDA Quick Start Guide. Why One platform for doing so is NVIDIA’s Compute Uni ed Device Architecture, or CUDA. This Best Practices Guide is a manual to help developers obtain the best performance from NVIDIA ® CUDA ® GPUs. You’ll discover when to use each CUDA C extension and how to write CUDA software that delivers truly outstanding performance. Several simple examples for neural network toolkits (PyTorch, TensorFlow, etc. CUDA also manages different memories including registers, shared memory and L1 cache, L2 cache, and global memory. CUDA Python simplifies the CuPy build and allows for a faster and smaller memory footprint when importing the CuPy Python module. 0 comes with the following libraries (for compilation & runtime, in alphabetical order): cuBLAS – CUDA Basic Linear Algebra Subroutines library; CUDART – CUDA Runtime library Sep 10, 2012 · With CUDA, developers write programs using an ever-expanding list of supported languages that includes C, C++, Fortran, Python and MATLAB, and incorporate extensions to these languages in the form of a few basic keywords. After the previous articles, we now have a basic knowledge of CUDA thread organisation, so that we can better examine the structure of grids and blocks. com), is a comprehensive guide to programming GPUs with CUDA. Introduction The cuBLAS library is an implementation of BLAS (Basic Linear Algebra Subprograms) on top of the NVIDIA®CUDA™ runtime. The Dataset and DataLoader classes encapsulate the process of pulling your data from storage and exposing it to your training loop in batches. We use the example of Matrix Multiplication to introduce the basics of GPU computing in the CUDA environment. Myself Shridhar Mankar a Engineer l YouTuber l Educational Blogger l Educator l Podcaster. CUDA is compatible with most standard operating systems. Oct 31, 2012 · CUDA C is essentially C/C++ with a few extensions that allow one to execute functions on the GPU using many threads in parallel. Accelerated Numerical Analysis Tools with GPUs. For more information, see An Even Easier Introduction to CUDA. Apr 17, 2024 · In order to implement that, CUDA provides a simple C/C++ based interface (CUDA C/C++) that grants access to the GPU’s virtual intruction set and specific operations (such as moving data between CPU and GPU). x, gridDim. Aug 16, 2024 · Load a prebuilt dataset. Cyril Zeller, NVIDIA Corporation. When a kernel access the host memory, the GPU must communicate with the motherboard, usually through the PCIe connector and as such it is relatively slow. Sep 30, 2021 · CUDA programming model allows software engineers to use a CUDA-enabled GPUs for general purpose processing in C/C++ and Fortran, with third party wrappers also available for Python, Java, R, and several other programming languages. compile. Model-Optimization,Best-Practice,CUDA,Frontend-APIs (beta) Accelerating BERT with semi-structured sparsity Train BERT, prune it to be 2:4 sparse, and then accelerate it to achieve 2x inference speedups with semi-structured sparsity and torch. It also demonstrates that vector types can be used from cpp. Happy to hear back from people with corrections and suggestions; it’s meant to be an evolving document. The list of CUDA features by release. Outline Evolvements of NVIDIA GPU CUDA Basic Detailed Steps This CUDA Runtime API sample is a very basic sample that implements how to use the printf function in the device code. Using parallelization patterns, such as Parallel. CUDA C/C++. So block and grid dimension can be specified as follows using CUDA. A sports car can go much faster than a bus, but can carry much fewer passengers in it. CUDA Thrust Sort Basic Usage. CUDA provides gridDim. Python programs are run directly in the browser—a great way to learn and use TensorFlow. Accelerated Computing with C/C++. Shared memory provides a fast area of shared memory for CUDA threads. Copying data from host to device also separate into 2 parts. Drop-in Acceleration on GPUs with Libraries. There are a few basic commands you should know to get started with PyTorch and CUDA. Evaluate the accuracy of the model. Build a neural network machine learning model that classifies images. This is the only part of CUDA Python that requires some understanding of CUDA C++. Supercomputing 2011 Tutorial. It is lazily initialized, so you can always import it, and use is_available() to determine if your system supports CUDA. Preface . This is done through a combination of lectures and example programs that will provide you with the knowledge to be able to design your own algorithms and leverage the Jul 19, 2021 · The Convolutional Neural Network (CNN) we are implementing here with PyTorch is the seminal LeNet architecture, first proposed by one of the grandfathers of deep learning, Yann LeCunn. You can run this tutorial in a couple of ways: In the cloud: This is the easiest way to get started!Each section has a “Run in Microsoft Learn” and “Run in Google Colab” link at the top, which opens an integrated notebook in Microsoft Learn or Google Colab, respectively, with the code in a fully-hosted environment. NET Framework. It covers every detail about CUDA, from system architecture, address spaces, machine instructions and warp synchrony to the CUDA runtime and driver API to key algorithms such as reduction, parallel prefix sum (scan) , and N-body. To keep data in GPU memory, OpenCV introduces a new class cv::gpu::GpuMat (or cv2. Aug 29, 2024 · Release Notes. Users will benefit from a faster CUDA runtime! This CUDA Runtime API sample is a very basic sample that implements how to use the printf function in the device code. We delved into the history and development of CUDA Sep 15, 2020 · Basic Block – GpuMat. > 10. For this to work It’s common practice to write CUDA kernels near the top of a translation unit, so write it next. Table of Contents. Download the NVIDIA CUDA Toolkit. Apr 28, 2017 · Hardware. Jan 12, 2024 · Basic CUDA Kernels and Memory Management. CUDA mathematical functions are always available in device code. Contribute to lhf2018/tianchi_docker_cuda_basic development by creating an account on GitHub. The CUDA Toolkit. e. If a GPU device has, for example, 4 multiprocessing units, and they can run 768 threads each: then at a given moment no more than 4*768 threads will be really running in parallel (if you planned more threads, they will be waiting their turn). When we call a kernel using the instruction <<< >>> we automatically define a dim3 type variable defining the number of blocks per grid and threads per block. 0 or later). If you don’t have a CUDA-capable GPU, you can access one of the thousands of GPUs available from cloud service providers, including Amazon AWS, Microsoft Azure, and IBM SoftLayer. CUDA also exposes many built-in variables and provides the flexibility of multi-dimensional indexing to ease programming. The CUDA Toolkit includes GPU-accelerated libraries, a compiler The basic CUDA memory structure is as follows: Host memory-- the regular RAM. Slides and more details are available at https://www. To use CUDA we have to install the CUDA toolkit, which gives us a bunch of different tools. 0 to allow components of a CUDA program to be compiled into separate objects. pip No CUDA. CUDA 8. The programming guide to using the CUDA Toolkit to obtain the best performance from NVIDIA GPUs. To Jan 15, 2016 · Since CUDA 4. 1. We also provide several python codes to call the CUDA kernels, including kernel time statistics and model training. 天池零基础入门Docker-cuda练习场【免费GPU】basic代码存档,分数:100. x, which contains the index of the current thread block in the grid. __global__ is used to mark a kernel definition only. CUDA Math Libraries. Numba is a just-in-time compiler for Python that allows in particular to write CUDA kernels. Aug 29, 2024 · CUDA C++ Best Practices Guide. Mar 14, 2023 · Benefits of CUDA. ) calling custom CUDA operators. The string is compiled later using NVRTC. CUDA is compatible with all Nvidia GPUs from the G8x series onwards, as well as most standard operating systems. The CUDA programming model provides three key language extensions to programmers: CUDA blocks—A collection or group of threads. It includes several API extensions for providing drop-in industry standard BLAS APIs and GEMM APIs with support for fusions that are highly optimized for NVIDIA GPUs. 000). GPU-accelerated math libraries lay the foundation for compute-intensive applications in areas such as molecular dynamics, computational fluid dynamics, computational chemistry, medical imaging, and seismic exploration. (Tutorial revised 6/26/08 - cleanup, corrections, and modest additions) (Tutorial revised again 8/19/08 - minor It focuses on using CUDA concepts in Python, rather than going over basic CUDA concepts - those unfamiliar with CUDA may want to build a base understanding by working through Mark Harris's An Even Easier Introduction to CUDA blog post, and briefly reading through the CUDA Programming Guide Chapters 1 and 2 (Introduction and Programming Model This course is aimed at programmers with a basic knowledge of C or C++, who are looking for a series of tutorials that cover the fundamentals of the Cuda C programming language. Also we will extensively discuss profiling techniques and some of the tools including nvprof, nvvp, CUDA Memcheck, CUDA-GDB tools in the CUDA toolkit. Aug 1, 2017 · By default the CUDA compiler uses whole-program compilation. Contribute to zenny-chen/cuda-thrust-sort-basic development by creating an account on GitHub. x, and threadIdx. Jul 28, 2023 · The Basic > Search page offers two search modes, Basic and Advanced: Basic Search – Run a search based on a word or phrase across all messages accessible by your account Advanced Search – Run a complex search query based on multiple criteria; note that you can save queries for future use May 6, 2020 · The CUDA compiler uses programming abstractions to leverage parallelism built in to the CUDA programming model. There are several advantages that give CUDA an edge over traditional general-purpose graphics processor (GPU) computers with graphics APIs: Integrated memory (CUDA 6. NVIDIA CUDA Installation Guide for Linux. One platform for doing so is NVIDIA’s Compute Uni ed Device Architecture, or CUDA. In this second post we discuss how to analyze the performance of this and other CUDA C/C++ codes. It is assumed that the student is familiar with C programming, but no other background is assumed. 2 : Thread-block and grid organization for simple matrix multiplication. Retain performance. The CUDA Toolkit from NVIDIA provides everything you need to develop GPU-accelerated applications. # Aug 29, 2024 · Installing CUDA Development Tools Basic instructions can be found in the Quick Start Guide. CUDA Features Archive. CUDA semantics has more details about working with CUDA. CUBLAS (CUDA Basic Linear Algebra Subroutines) is a GPU-accelerated version of the BLAS library. Jun 15, 2009 · C++ Integration This example demonstrates how to integrate CUDA into an existing C++ application, i. Figure 1 illustrates the the approach to indexing into an array (one-dimensional) in CUDA using blockDim. This post dives into CUDA C++ with a simple, step-by-step parallel programming example. PyTorch supports the construction of CUDA graphs using stream capture, which puts a CUDA stream in capture mode. Using CUDA, one can utilize the power of Nvidia GPUs to perform general computing tasks, such as multiplying matrices and performing other linear algebra operations, instead of just doing graphical calculations. Tutorial 1 and 2 are adopted from An Even Easier Introduction to CUDA by Mark Harris, NVIDIA and CUDA C/C++ Basics by Cyril Zeller, NVIDIA. Mar 2, 2018 · From the basic CUDA program structure, the first step is to copy input data from CPU to GPU. NVCC Compiler : (NVIDIA CUDA Compiler) which processes a single source file and translates it into both code that runs on a CPU known as Host in CUDA, and code for GPU which is known as a device. Here are some basics about the CUDA programming model. Set Up CUDA Python. This tutorial is an introduction for writing your first CUDA C program and offload computation to a GPU. Based on industry-standard C/C++. nersc. The CUDA Handbook, available from Pearson Education (FTPress. 0, the function cuPrintf is called; otherwise, printf can be used directly. This tutorial is a Google Colaboratory notebook. About A set of hands-on tutorials for CUDA programming Jul 17, 2024 · This project focuses on optimizing matrix operations, specifically addition and multiplication, using CUDA for GPU architectures. 0 or later) and Integrated virtual memory (CUDA 4. 0 was released, multi-GPU computations of the type you are asking about are relatively easy. Read on for more detailed instructions. Often, the latest CUDA version is better. Jul 1, 2024 · Release Notes. Before we go further, let’s understand some basic CUDA Programming concepts and terminology: host: refers to the CPU and its memory; Apr 2, 2020 · Fig. Separate compilation and linking was introduced in CUDA 5. This course contains following sections. The Dataset is responsible for accessing and processing single instances of data. What’s a good size for Nblocks ? Nov 2, 2023 · You’re evidently confused about the decorators __global__, __device__ and when to use them. CUDA memory model-Global memory. To run CUDA Python, you’ll need the CUDA Toolkit installed on a system with CUDA-capable GPUs. Running the Tutorial Code¶. In the first post of this series we looked at the basic elements of CUDA C/C++ by examining a CUDA C/C++ implementation of SAXPY. Website - https:/ Dec 7, 2023 · CUDA has revolutionized the field of high-performance computing by harnessing the immense power of GPUs for complex computational tasks. For, or ditributing parallel work by hand, the user can benefit from the compute power of GPUS without entering the learning curve of CUDA, all within Visual Studio. CUDA provides C/C++ language extension and APIs for programming Jan 25, 2017 · A quick and easy introduction to CUDA programming for GPUs. You can verify this with the following command: torch. gov/users/training/events/nvidia-hpcsdk-tra The NVIDIA® CUDA® Toolkit provides a development environment for creating high-performance, GPU-accelerated applications. Minimal first-steps instructions to get CUDA running on a standard system. For general principles and details on the underlying CUDA API, see Getting Started with CUDA Graphs and the Graphs section of the CUDA C Programming Guide. Many deep learning models would be more expensive and take longer to train without GPU technology, which would limit innovation. Hybridizer Essentials is a compiler targeting CUDA-enabled GPUS from . It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU). But as soon as I got the hang of it, I began writing CUDA code with a renewed sense of confidence. CUDA C/C++ Basics. Here is a basic Dockerfile to build a CUDA compatible image. What is CUDA? CUDA Architecture. NVIDIA cuBLAS is a GPU-accelerated library for accelerating AI and HPC applications. Aug 29, 2024 · CUDA Quick Start Guide. efio eaizqdnx glgew jqskxeuh wwl eaqwtu hrx etye yoxge rmmte
radio logo
Listen Live