Giter Site home page Giter Site logo

linear_algebra's People

Contributors

usbalbin avatar

Watchers

 avatar  avatar

linear_algebra's Issues

Memory leak

When using an AMD Vega 56 as the computing device the following code seems to create a massive memory leak when doing many iterations. It appears as if the old m1's underlaying buffer is never freed thus burning through device memory in a matter of seconds.

`

  use matrix::*;
  let x = 200;

  let mut m1: Matrix<f32> = Matrix::from_vec(
      (0..(rows * cols)).map(|x| x as f32 / (rows * cols) as f32).collect(),
      x,//Rows
      x//Cols
  );

  let m2: Matrix<f32> = Matrix::from_vec(
      (0..(rows * cols)).map(|x| x as f32 / (rows * cols * rows) as f32).collect(),
      x,//Rows
      x//Cols
  );

  for _ in 0..100000 {
      m1 = &m1 * &m2; // <- Leak here
  }
  println!("{:?}", m1);

`

This issue does not appear when using an Intel i7 3930k as the computing device.

Not thread safe

linear_algebra is currently not thread safe due to multiple threads having mutable access to static data. References to this data is currently handed out from cl_data() which is called for every math operation on vectors or matrices.

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.