Code Monkey home page Code Monkey logo

simd-visualiser's People

Contributors

avery-laird avatar george-b avatar imgbotapp avatar lemire avatar piotte13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simd-visualiser's Issues

Seems that _mm_cvtepi8_epi32 is unsupported

What a great tool, thanks for this! I tried to visualize a very simple function that uses _mm_cvtepi8_epi32; it compiles but then page goes blank; in the firefox console following error appears:

TypeError: e.component.current is null[Learn More] SequentialComponent.js:89:12
<anonymous>
SequentialComponent.js:89:12
value
SequentialComponent.js:83:39
Ni
react-dom.production.min.js:2890
so
react-dom.production.min.js:3408:3
ho
react-dom.production.min.js:3593
Ko
react-dom.production.min.js:4600
Vo
react-dom.production.min.js:4620
Aa
react-dom.production.min.js:5017
Oa
react-dom.production.min.js:4983
Ea
react-dom.production.min.js:4927
Xo
react-dom.production.min.js:4847
enqueueSetState
react-dom.production.min.js:2844
k.prototype.setState
react.production.min.js:72
value
ASMVisualizer.js:67:12
value self-hosted:974:17 complete
SequentialComponent.js:47:20
o
anime.min.js:587
s
anime.min.js:615
j/h.tick
anime.min.js:646
t
anime.min.js:848

Examples of things that crash or hang the visualizer

This example makes it spin forever:

#include <x86intrin.h>

 __m256 dot8(__m256 a0, __m256 a1, __m256 a2, __m256 b0, __m256 b1, __m256 b2)
{
  return _mm256_add_ps(
    _mm256_mul_ps(a0, b0), _mm256_add_ps(_mm256_mul_ps(a1, b1), _mm256_mul_ps(a2, b2)));
}

This example makes it load a white webpage:

#include <x86intrin.h>
__m128i a;
__m128i Foo() { return a; }

Offer a collection of examples the user can try

It would be nice if the user could choose out of a small collection of examples...

E.g., here is another example...

__m128i Delta(__m128i curr, __m128i prev) {
  __m128i a = _mm_alignr_epi8(curr, prev, 12);
  return _mm_sub_epi32(curr, a);
}

c.c. @pmntang

Example failure - AVX512F/VL intrinsic support?

Hi folks, cool project!

I was trying out a few of my code snippets but can't seem to get them to work. Here's an example:

#include <x86intrin.h>

__m512 huge = _mm512_set1_pd(2);
__m512 tiny = _mm512_set1_pd(-2);
__m512 one = _mm512_set1_pd(1.0);

void sgm(__m512& prodv, __m512& scales, __m512 const incoming) {
	prodv = _mm512_mul_pd(prodv, incoming);
	auto pgeh = _mm512_cmp_pd_mask(prodv, huge, _CMP_GE_OQ);
	auto plet = _mm512_cmp_pd_mask(prodv, tiny, _CMP_LE_OQ);
	prodv = _mm512_mask_mul_pd(prodv, pgeh, prodv, tiny);
	prodv = _mm512_mask_mul_pd(prodv, plet, prodv, huge);
	scales = _mm512_mask_add_epi64(scales, pgeh, scales, one);
	scales = _mm512_mask_sub_epi64(scales, plet, scales, one);
}

Removing the & in the parameter list and making it return prodv gets it a bit further, but not much. All of the instructions are reported as "unsupported command".

List of unsupported instructions?

Big thanks for making this cool tool open-source.

By any chance, is there a complete list of instructions which are currently not supported / under development please? For instance, I am aware that vgatherdpd does not work.

neon support (ARM)

Neat project! A quick search didn't turn up anything for NEON (ARM's SIMD intrinsics). Would this be difficult to implement?

Identify the vectors, possibly with colors.

Right now, one cannot quickly identify which vector is being animated. Sometimes vectors are subject to a lot of operation aland are mixed with other vectors. We should be able to quickly know which one is which.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.