All Projects → zeam-vm → Pelemay

zeam-vm / Pelemay

Licence: apache-2.0
Pelemay is a native compiler for Elixir, which generates SIMD instructions. It has a plan to generate for GPU code.

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Pelemay

Sixtyfour
How fast can we brute force a 64-bit comparison?
Stars: ✭ 41 (-74.53%)
Mutual labels:  gpu-computing
Nyuziprocessor
GPGPU microprocessor architecture
Stars: ✭ 1,351 (+739.13%)
Mutual labels:  gpu-computing
Claymore
Stars: ✭ 135 (-16.15%)
Mutual labels:  gpu-computing
Heteroflow
Concurrent CPU-GPU Programming using Task Models
Stars: ✭ 57 (-64.6%)
Mutual labels:  gpu-computing
Cekirdekler
Multi-device OpenCL kernel load balancer and pipeliner API for C#. Uses shared-distributed memory model to keep GPUs updated fast while using same kernel on all devices(for simplicity).
Stars: ✭ 76 (-52.8%)
Mutual labels:  gpu-computing
Deepnet
Deep.Net machine learning framework for F#
Stars: ✭ 99 (-38.51%)
Mutual labels:  gpu-computing
Nvidia libs test
Tests and benchmarks for cudnn (and in the future, other nvidia libraries)
Stars: ✭ 36 (-77.64%)
Mutual labels:  gpu-computing
Clvk
Experimental implementation of OpenCL on Vulkan
Stars: ✭ 158 (-1.86%)
Mutual labels:  gpu-computing
Kernelabstractions.jl
Heterogeneous programming in Julia
Stars: ✭ 88 (-45.34%)
Mutual labels:  gpu-computing
Accelerate Llvm
LLVM backend for Accelerate
Stars: ✭ 134 (-16.77%)
Mutual labels:  gpu-computing
Sushi2
Matrix Library for JavaScript
Stars: ✭ 60 (-62.73%)
Mutual labels:  gpu-computing
Autodock Gpu
AutoDock for GPUs and other accelerators
Stars: ✭ 65 (-59.63%)
Mutual labels:  gpu-computing
Openclga
A Python Library for Genetic Algorithm on OpenCL
Stars: ✭ 103 (-36.02%)
Mutual labels:  gpu-computing
Raspberrypi tempmon
Raspberry pi CPU temperature monitor with many functions such as logging, GPIO output, graphing, email, alarm, notifications and stress testing. Python 3.
Stars: ✭ 52 (-67.7%)
Mutual labels:  gpu-computing
Fastflow
FastFlow pattern-based parallel programming framework (formerly on sourceforge)
Stars: ✭ 137 (-14.91%)
Mutual labels:  gpu-computing
Fractional differencing gpu
Rapid large-scale fractional differencing with RAPIDS to minimize memory loss while making a time series stationary. 6x-400x speed up over CPU implementation.
Stars: ✭ 38 (-76.4%)
Mutual labels:  gpu-computing
Emu
The write-once-run-anywhere GPGPU library for Rust
Stars: ✭ 1,350 (+738.51%)
Mutual labels:  gpu-computing
Clojurecuda
Clojure library for CUDA development
Stars: ✭ 158 (-1.86%)
Mutual labels:  gpu-computing
Ginkgo
Numerical linear algebra software package
Stars: ✭ 149 (-7.45%)
Mutual labels:  gpu-computing
Pysnn
Efficient Spiking Neural Network framework, built on top of PyTorch for GPU acceleration
Stars: ✭ 129 (-19.88%)
Mutual labels:  gpu-computing

Pelemay

Pelemay = The Penta (Five) “Elemental Way”: Freedom, Insight, Beauty, Efficiency and Robustness

For example, the following code of the function map_square will be compiled to native code using SIMD instructions by Pelemay.

defmodule M do
  require Pelemay
  import Pelemay

  defpelemay do
    def map_square (list) do
      list
      |> Enum.map(& &1 * &1)
    end

    def string_replace(list) do
      list
      |> Enum.map(& String.replace(&1, "Fizz", "Buzz"))
    end
  end
end

Supported Platforms

Potentially, Pelemay may support any architectures that both Erlang and Clang or GCC are supported.

We've tested it well on the following processor architectures:

  • x86_64
  • ARM

We've tested it well on the following OS:

  • macOS (64bit, including Apple Silicon M1 Mac on ARM native mode (unfortunately, not works on Rosetta 2))
  • Linux (64bit)
  • Nerves (Raspberry Pi 3)

I'm so sorry but Windows isn't be supported because of changing the builder of Pelemay.

We've tested it on the following Elixir versions:

  • 1.9
  • 1.11

We've tested it on the following OTP versions:

  • 23
  • 22
  • 21
  • 20

We've tested it on Clang 6 or later and GCC 7 or later. Potentially, Clang and GCC that supports auto-vectorization can generate native code with SIMD instructions by Pelemay.

Pelemay also supports Nerves.

Pre-installation

Pelemay requires Clang or GCC and make.

Environment Variable CC is recommended being set the path of the C compiler you want to use.

Installation

Add pelemay to your list of dependencies in mix.exs:

def deps do
  [
    {:pelemay, "~> 0.0.15"},
  ]
end

Documentation is generated with ExDoc and published on HexDocs. The docs will be found at https://hexdocs.pm/pelemay.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].