Code Monkey home page Code Monkey logo

cracen's People

Contributors

fabian-jung avatar nicoweh avatar ri-p avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cracen's Issues

Give error on empty input

  • When input file is empty, don't use a hardcoded default
  • instead, give an error or (even better) show the help!

Add more hooks

Add a precomputation and postcomputation Hook to cracen.

Meta data stream

Add a way to add meta data to the payload data. The way the meta data is sent should be configurable to take other paths, to increase bandwidth and decrease latancy of the payload data.

List all dependencies

All install dependencies and run dependiencies should be listed
All important versions should be documented

Use template deduction for creation

  • Change SendPolcy Api to not need cage
    -> this is better anyway, since there is no valid cage ref in the beginning and the lambda call in constructor of cracen is a mess
  • make template arguments to arguments of the constructor
  • benefit from lambdas on creation

Improve writing of output data

Ideas:

  • use different format
    • should be well documented (VTK? ๐Ÿ‘…, binary?)
    • should be space efficient
  • stay with JSON, but compress it before writing to disk
    • either compress directly in C++ with the use of a library
    • or supply a command-line option to write the output to stdout. Then, you can use a pipe to compress the stream on the fly with arbitrary software (tar)

Makefile Dependencies

Some dependencies are missing in the Makefile.
Workaround: run make clean before make.

Polynom only up to order of 6

Float overflow during calculation. Calculation in LeveMarq.hpp AT*A (X^7)^2 FOR X=0..SAMPLE_COUNT too big for floats.
MAX order = log (SAMPLE_COUNT, sqrt(MAX_FLOAT))

Redefine x domain to [0..1]. But questionable resolution. => use mixed precision

Register count too high

Compiling on measurement pc uses to many registers for LevenbergMarquard kernel (>100) on other machines the kernel only needs 40 registers

Grpc Update

The grpc update of graybat lead to different config objects needed for zmq contexts. Update Benchmark, Tests, and all the examples to be compatible with the signaling server.

Zombie Threads

If a cracen gets deleted, it tries to clean all of the allocated resources. However some threads are waiting on synchronus or asynchronus send or receive operations from graybat. Since there is no way to stop these threads either via graybat or via the std::thread interface, these may be stuck forever.

This should not be a problem, since the destructor is not called in continguous data processing (cracen instances are living over the whole programs lifespan) and even if some zombie threads are alive, they don't take much memory and nexto zero cpu time.

One problem might arise, if one zombie decides to wake up and acts on the released data. This would most likely lead to seg fault or undefined behaviour.

HDD backup streams

Add an option to stream incomeing and outgoing messages to hard drives as a backup.

C API

Implement a c api.

Write Filemultiplexer to stresstest data rate

The datarate of the scope reader is to low to utilize even a single GPU. The dumpfiles also proviedes pretty small datasets.
To get useful benchmarks for the fittings a new "compute" node could be added, that multiplys every data set e.g. hundred times before sending it to the fitting node. That way the datastream will supply enough bandwidth to utilize one or more devices or nodes.

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.