Linear Algebra Libraries #1
Replies: 8 comments
|
Scikit Learn - Aidan Dyga, Caleb Kendra, Colin Elder
|
|
CuPy - Luke, Arina |
|
Logan Greer, Stephen Palmer - JAX: 2: Vectorization and parallel support: The process of performing operations on whole arrays (or vectors) at once rather than using explicit loops. This makes the code more concise and often more efficient. JAX provides several tools for vectorization: import jax def add_one(x): vectorized_add_one = jax.vmap(add_one) x = jnp.array([1, 2, 3, 4, 5]) jax.lax.scan: import jax @jax.jit x = jnp.array([1, 2, 3, 4, 5]) Parallel Map (pmap): import jax def add_one(x): parallel_add_one = jax.pmap(add_one) x = jnp.array([1, 2, 3, 4, 5]) Hardware Acceleration: 3: Key Functions/Operators: JAX provides several core functions for matrix operations, including: jax.numpy.matmul(A, B) – Matrix multiplication. 4: How does it compare to other libraries in terms of performance?: Performance: JAX is often faster than NumPy due to JIT compilation and GPU/TPU acceleration. |
NumPyHaylee Pierce & Mordred Boulais
|
Pytorch (Chloe and Danny)What is this library primarily used for?Pytorch is primarily used for deep learning an machine learning tasks. It provides a framework for building neural networks and performing tensor computations, making it widely used in industry. How does it support vectorization and parallel computing?Pytorch supports these via 3 main techniques: Data Parallelism, Distributed Data Parallelism, and Model Parallelism. Basically, it replicates the model across multiple GPUs, batching the data and then aggregating the computed gradients. What are some key functions/operators for matrix operations? (e.g., matmul, dot, einsum)
How does it compare to other libraries in terms of performance and hardware acceleration?
|
TensorFlowAlish Chhetri, Chi (Jaclyn) PhamQuestions and AnswersWhat is this library primarily used for?TensorFlow is primarily used for building and training machine learning and deep learning models. It provides tools for numerical computation, automatic differentiation, and large-scale machine learning deployment. It is widely used in neural network-based applications, such as image recognition, natural language processing, and time-series forecasting. How does it support vectorization and parallel computing?TensorFlow supports vectorization by using tensor operations that can process large amounts of data simultaneously. TF also uses parallel computing by distributing computations across multiple CPUs and GPUs using its XLA compiler and GPU-optimized kernels. An annoying aspect about TensorFlow's GPU support is that it is always a version or two behind the CPU only release. This means that version matching TensorFlow, CUDA, CUDNN can be frustrating to set up. What are some key functions/operators for matrix operations? (e.g., matmul, dot, einsum)
How does it compare to other libraries in terms of performance and hardware acceleration?TF uses parallel computing by distributing computations across multiple CPUs and GPU/TPUs using its XLA compiler and GPU-optimized kernels. An annoying aspect about TensorFlow's GPU support is that it is always a version or two behind the CPU only release. This means that version matching TensorFlow, CUDA, CUDNN can be frustrating to set up. However the library does scale better than PyTorch since it is static computation graph allows for better optimization while PyTorch allows more flexibleity. TensorFlow has better TPU support compared to other frameworks ( Tensor-flow has great support with Tensor-Processing-Units, wow wow). |
|
MXNet- (Orion Grieco and Renee Tetlow): |
TinygradBenedek KaibasWhat is this library primarily used for?Tinygrad is a minimalist deep learning library designed to be simple and educational. It is primarily used for understanding the core concepts of deep learning and neural networks by providing a very small and easy-to-read codebase. How does it support vectorization and parallel computing?Tinygrad leverages numpy for its array operations, which inherently supports vectorization and parallel computing. What are some key functions/operators for matrix operations? (e.g., matmul, dot, einsum)
How does it compare to other libraries in terms of performance and hardware acceleration?Tinygrad's primary goal is to be simple and educational. While it can leverage numpy for some level of optimization, it does not have the extensive hardware acceleration support that other libraries offer, such as GPU acceleration via CUDA or TPU support. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Activity 4
Working in groups, research a linear algebra library. You can select one of the following or another library not in this list. No duplicates between teams.
Specifically, identify:
matmul,dot,einsum)Submit a comment response with your findings. Include names of your team members
All reactions