Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 10 18:10

    mclow on boost-1.78.0.beta1

    (compare)

  • Nov 06 11:35

    bassoy on develop

    ci: add CI for asciidoc documen… (compare)

  • Nov 06 11:35
    bassoy closed #143
  • Nov 05 09:24
    github-actions[bot] commented #144
  • Nov 05 08:49
    shikharvashistha synchronize #144
  • Nov 05 08:49

    shikharvashistha on out_of_range_exception_for_static_tensor

    Included exception handling for… (compare)

  • Nov 05 08:45
    shikharvashistha opened #144
  • Nov 05 08:43

    shikharvashistha on out_of_range_exception_for_static_tensor

    Added out of range exception fo… (compare)

  • Nov 05 08:38

    shikharvashistha on out_of_range_exception_tensor_static

    (compare)

  • Nov 05 08:33

    shikharvashistha on out_of_range_exception_tensor_static

    Added out of range exception to… (compare)

  • Nov 04 09:11
    bassoy review_requested #143
  • Nov 04 09:09
    bassoy review_requested #143
  • Nov 04 09:09
    bassoy review_requested #143
  • Nov 04 05:33
    github-actions[bot] commented #143
  • Nov 04 04:49
    shikharvashistha synchronize #143
  • Nov 04 04:49

    shikharvashistha on doc

    (compare)

  • Nov 04 04:45
    shikharvashistha synchronize #143
  • Nov 04 04:45

    shikharvashistha on doc

    Enabled source hilighting for c… (compare)

  • Nov 04 04:36
    shikharvashistha labeled #143
  • Nov 04 04:36
    shikharvashistha opened #143
Cem Bassoy
@bassoy
Agree. we can have specialized tensor multiplication functions for different tensor types. Remembering our last discussion, I still think that specialized functions with static tensor rank but large large static dimensions (although using SIMD) will not perform better than their dynamic counterparts. However, for small tensors (fitting in L1 or L2 cache) this might change. So IMO, we should also go that direction.
amitsingh19975
@amitsingh19975
we can use the block multiplication with SIMD for cache-friendly operations and other tricks to optimize it.
Cem Bassoy
@bassoy
Yes. Using OpenMP pragmas will help us to be platform independent while still being efficient.
Ashar
@coder3101

couldn't we specialize tensor_core with a matrix_engine ?

Yes that can be done too, but as discussed we will proceed with Amit's proposal now. I suggest one thing that we should be quick in merging PR's, there are so many open PR and there is absolutely no solid base branch to work on new stuff.

Cem Bassoy
@bassoy
@coder3101 Agree. I wanted to wait for other maintainers and contributors as these are crucial changes. @amitsingh19975 there are some open topics, especially regarding the about the rebinding. Can u move to SFINAE as proposed?
amitsingh19975
@amitsingh19975
I changed the to SFINAE for most of the things we can do right now or necessary right now and for the rebinding I replied to your comments on the github.
Cem Bassoy
@bassoy
Yes. I am blocking the merge because I do not like the solution for rebind and the solution for the prod function.
amitsingh19975
@amitsingh19975
What's your alternative to rebind? I could change rebind to rebind_size for static size and remove rebind.
Cem Bassoy
@bassoy
many thanks @amitsingh19975. your pull request boostorg/ublas#90 is a very solid contribution to ublas. The changes simplify the usage and development of Boost.uBlas with tensors of different character. Although there are still some parts to improve, I have approved it. You will find the many discussions on github. I invite @coder3101 and others to review it too. The changes will merged in one week if there is no other review.
KalyanKumar-4
@KalyanKumar-4
Hello dear mentors,i've good knowledge of C++.I want to contribute on your projects through GSOC-2021.So can you guide me how /where can i start?
Cem Bassoy
@bassoy
@KalyanKumar-4 Thanks for your interest in boostorg/ublas. We did not select any gsoc21 tensor projects yet. As for now, I recommend to read the general gsoc student guidelines and @mloskot great advice and to have a look into the previous gsoc projects, e.g. https://github.com/BoostGSoC20/ublas/wiki or https://github.com/BoostGSoC19/tensor/wiki. For the communication style you might want to visit our former gsoc19 gitter channel.
deepikabirthare
@deepikabirthare
Hello Everyone. I have good knowledge of C++ and want to contribute to Boost c++ . Please guide me.
Cem Bassoy
@bassoy
@deepikabirthare thanks for considering boost/ublas. see my previous comments to @KalyanKumar-4 and also consider this project list.
KalyanKumar-4
@KalyanKumar-4
should we know blas to learn ublas?
Ashar
@coder3101
should we know blas to learn ublas?
Yes, but not required. If you don't want to touch algorithms and only want to work on interfaces/api.
Just came in to thank @bassoy , I will be joining cisco as SDE intern starting this January.
1 reply
Cem Bassoy
@bassoy
@coder3101 congrats!

should we know blas to learn ublas?

@KalyanKumar-4 what do you mean by "know blas"

5 replies
DevanshSGit
@DevanshSGit
Hi everyone, I am a beginner here, but I want to learn while contributing. I've read through all the guidelines for GSOC and also installed boost libraries on my system. What should I do next?
Cem Bassoy
@bassoy

read my comments

@KalyanKumar-4 Thanks for your interest in boostorg/ublas. We did not select any gsoc21 tensor projects yet. As for now, I recommend to read the general gsoc student guidelines and @mloskot great advice and to have a look into the previous gsoc projects, e.g. https://github.com/BoostGSoC20/ublas/wiki or https://github.com/BoostGSoC19/tensor/wiki. For the communication style you might want to visit our former gsoc19 gitter channel.

Cem Bassoy
@bassoy
Project and competency test descriptions are updated: https://github.com/boostorg/wiki/wiki/Google-Summer-of-Code:-2020
GSoC applicants should start with the competency test. Once finished provide the link inside your proposal.
DO NOT POST/EMAIL your competency tests / proposals
Good luck to all applicants!
Please note that what do you mean by questions are welcome while how can I or is my implementation/proposal questions will not be answered
KoushikAD1234
@KoushikAD1234
Hii Everyone! I'm a first year B.Tech Electronics and communication engineering student. I would like to start contributing to Boost C++ libraries as I highly intereseted in Coding as well as development and also want to participate in GSoC 2021 under this Organisation. Will somebody help me?
Cem Bassoy
@bassoy
@KoushikAD1234
Thanks for your interest in boostorg/ublas.
I recommend for all applicants
  • to read the general GSoC student guidelines and also @mloskot's tips
  • to read the tensor project descriptions in the boostorg wiki
  • to have a look into the previous GSoC projects GSoC20, GSoC19.
  • to visit the GSoC19 gitter channel and understand the level of expertise required for uBlas GSoC projects
  • to ask yourself
    • do I have enough C++ knowledge and am I experienced enough (see previous gsoc wiki)? (You do not have time to learn or experiment with C++ along the way)
    • am I able to provide an excelent solution for the competency test and to write a good proposal?
    • do I have enough time and will/desire to complete the project and to contribute to Boost? (You will not be able to complete a project with less than 30h-40h per week)
  • to only apply if you can answer all the above questions with a "yes"
Cem Bassoy
@bassoy
If you have decided to proceed:
  • decide which ublas project you want to apply for
  • if and only if you are already an expert in the field of C++ programming, algorithm design and matrix/tensor computations feel free to propose your own project
  • implement a solution for the competency test and write a proposal
  • while implementing and writing:
    • clarification questions like "what do you mean by" are welcome but should be well thought through
    • be sure that your questions like "what do you think of" seeking exchange of ideas with a potential mentor are well thought through
    • do not ask questions like "how can I" or "is my implementation/proposal" seeking instructions or concrete solutions
  • write a short message in this gitter channel that you are finished with the competency test and your proposal - DO NOT POST THE LINK of your competency test!
  • we will get in contact with you and proceed if we think that you did a good job
Palak
@developer22-university
hi, Cem we have to do individual competency test of every project
@bassoy
Palak
@developer22-university
HEY @bassoy I need help in competency tests please help me
Cem Bassoy
@bassoy
@developer22-university, please read my comments in this channel placed on Jan 5th.
Palak
@developer22-university
Yes but it is not clear to me
i have some questions
Cem Bassoy
@bassoy
What is not clear
Janek Kozicki
@cosurgi
bassoy: I am Janek Kozicki. I asked about index redirection for FFT. I joined irc via irssi in case if you wanted to discuss :-)
this irssi session is running inside screen on some server. So I will stay here even when AFK, it is logged etc. I'm pretty used to irc ;)
Janek Kozicki
@cosurgi
bassoy: I've just read your response on the mailing list. Perhaps custom index ranges is the answer. The problematic thing is in higher dimensions.
Imagine a 3D cube.
Slice it into 8 half cubes using three plance in the center.
Shift this cube along 3D vector (1,1,1) by half the cube size.
Only 1 of the 8 small cubes will be inside memory region.
Place other 7 small cubes in their respective places, assuming it is all happening inside periodic boundaries.
%s/using three plance/using three planes.
Janek Kozicki
@cosurgi
Oooh! We have periodic iterators in boost, right? If I could just use periodic iterator on your tensors, this would completely solve the problem. I would only write a small wrapper which adds half the size (along each dimension) for every query to the conatiner. The periodic iterator will do the modulo size operation, and problem solved.
Palak
@developer22-university
i have some questions are there any past contributors to boost projects to communicate with
Cem Bassoy
@bassoy

@cosurgi there are no "periodic" iterators. Only random access iterators, as you know it from std::vector with which you can create valid ranges. We will introduce subtensors like A (3:4,6:end,end) as you might know it from Matlab. However, this may take a while until it is pulled into the master branch.

If you want to apply FFT for a specific continuous memory region inside a tensor than slice the tensor using subtensor, copy it into a new tensor and access it with standard pointers. If you do not care about continuous memory region and speed, you can directly use subtensor and apply all operations as you do for tensor.

Hopefully a GSoC student will work on the feature/subtensor branch.
Janek Kozicki
@cosurgi
bassoy: Thanks. I will figure something out. Some index transform on access. Not sure. My current version is slow. I want to make it faster. FFT requires entire memory region of the tensor. But with a different layout. (described above, hopefully in more understandable way)
But that is not a typical problem, I understand your confusion. In a different problem (e.g. image processing) this would never be the case.
Cem Bassoy
@bassoy
do you always slice your tensor in the same way?
Janek Kozicki
@cosurgi
in quantum mechanics Fourier Transform uses to momentum representation of a wavefunction. The momentum is between -p...p. In image processing the frequency is from 0..2*f instead of -f..f. That's the main difference.