As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Note: Sorry this is not exactly a programming question; please migrate it if there is a more appropriate stackexchange site (I didn't see any; it's not theoretical CS).
I'm looking for less CUDA-specific terms for certain GPU-programming related concepts. OpenCL is somewhat helpful. I'm looking for "parallelism-theory" / research paper words more than practical keywords for a new programming language. Please feel free to post additions and corrections.
"warp"
I usually equate this to SIMD-width.
"block"
alternatives
"group" (OpenCL).
"thread-block" -- want something shorter
"tile"
"syncthreads"
It seems "barrier" is the more general word, used in multicore CPU programming I think, and OpenCL. Is there anything else?
"shared memory"
alternatives
"local memory" (OpenCL).
"tile/block cache"?
"kernel"
alternatives
"CTA / Cooperative Thread Array" (OpenCL). way too much of a mouthful, dunno what it means.
"GPU program" -- would be difficult to distinguish between kernel invocations.
"device computation"?
There aren't really exact enough technology neutral terms for detailed specifics of CUDA and openCL and if you used more generic terms such as "shared memory" or "cache" you wouldn't be making clear precisely what you meant
I think you might have to stick to the terms from one technology (perhaps putting the other in brackets) or use "his/her" type language and add extra explanation if a term doens't have a corresponding use in the other
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
By asking for the 'relative popularity' of different languages, rather than asking 'what is the best language?' or 'what is your favorite language', I hope to make this somewhat objective.
I want a language for machine learning / matrices, that is:
opensource-friendly (cf matlab)
fast for inner-loops (cf python,matlab)
fast for matrices (most languages are about the same, since they can usually use BLAS)
has terse, easy to read syntax (cf java)
I've currently settled on java, since it's average at everything, but really poor at nothing, but I can't help feeling that java feels more and more dated, eg no operator overloading, and the borked generics, so I'm wondering what the feeling on the relative popularity of different languages for machine learning is?
I think mostly people use C++, matlab and python, but just curious if there's some language that I've missed that everyone's busy using, that I didn't realize yet?
When I worked on a machine learning project with a friend, I picked up R, which is open source, designed for matrix math, and has extensive library support. It's certainly terser than Java, and I found the syntax pleasant, but that's a subjective judgement.
According to Rexer Analytics, R is the most popular data mining tool, being used by almost half of all of their survey respondents.
(Information on R is hard to search for, so they have a Google frontend for searching for information about it.)
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Javascript is nice, but for the better performance, why web browser(ie/chrome,firefox,safari) do not add lua vm? or make lua vm become a part of web browser standard?
Welcome any comment
Because today's JIT compilers for Javascript are just as fast, if not faster than, JIT engines for Lua.
The web experimented with different client-scripting languages in the mid-1990s (when we had LiveScript (an early JavaScript), VBScript (thank you, Microsoft), as well as Tcl. The web decided it didn't like that and we settled on a single language (JavaScript, now EcmaScript).
Lua offers no real advantages and introduces a massive workload (the DOM API would need to be implemented, for example, and Lua has different semantics to EcmaScript (with respect to typing and how functions work, amongst other things) so the majority of web developers would need to relearn their trade.
There just isn't a business case in it.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am preparing my first course on Numerical Methods for Electrical Engineering and would like to collect feedback from colleagues with experience in the subject, about which language or environment has generated more positive results in relation to student learning. MATLAB / Octave?, Python? C / C++? It would be interesting to use the R? Sorry if the question is outside the scope of the site.
Thanks for the feedback
Octave
Gentle learning curve-- easier to start using, than C, FORTRAN or even Python. Allows you to focus your curriculum on the concepts and not the minutiae.
Uses an interpreted programming model-- students receive feedback quickly. No compile/link. Rapid feedback also encourages students to explore concepts freely.
It works very well with the command line interface. Simple is good.
Runs on many operating systems.
Many, many scripts available freely.
Large community that supports MATLAB and Octave. Help is never far away.
Installation is very simple.
Many high-level numerical function are built-in, so to speak. You can choose to let your students use them, or not. It will depend on the curriculum.
Octave is free and works very well.
The only thing I miss is IDE integration with a debugger.
Check with the other faculty. They might have an opinion about what tool sets are appropriate for the class.
Environments with a Read-Execute-Print-Loop are far, far better than anything which requires a compiler. C and C++ (and Java for that matter) impose some intellectual overheads that may not be helpful.
In all cases (Matlab, Python, R) the basic rules of Floating Point arithmetic are absolutely essential.
It seems like (almost) every week someone posts yet another question here on why
>>> 555*(1/.555)
999.9999999999999
happens in Python (or Java or C).
Please don't allow your students to ask this question here.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have some knowledge of C/C++ programming and want to learn CUDA. I'm also on a mac. So what is the best way to learn CUDA?
Download the dev kit, take one of the examples, and modify it. Then write something from scatch.
you can consult these resources
CUDA SDK Code Samples
CUDA by Example: An Introduction to General-Purpose GPU Programming
nvidia
Think up a numerical problem and try to implement it. Make sure that you have an NVIDIA card first. :) Download the SDK from NVIDIA web site. Read the "CUDA programming guide", it's less than 200 pages long and sufficiently well written that you should be able to do it in one pass. Pick a sufficiently simple sample and start modifying/rewriting it.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
How much better would commercial OCR software be compared to the stuff that's available online for free?
More specifically: Reading text in pictures (things like book covers etc...)
I work with OCR quite a lot and can definitely vouch that the commercial offerings are much better than what you can find out there for free. Yes, you can make a free one 'work', but it will take a lot of effort for sub-optimal results.
I recommend finding a product that uses the ABBYY FineReader : It does a great job with little configuration.
You may want to consider whether you need to use an SDK provided by the OCR supplier or an end-user application. The SDK will provide position details, etc of what it finds and offer a lot more in-depth control, but will be more expensive. The end-user package will basically just read everything it finds, but you may be able to set it to automatic or control it rudimentally and it might be good enough for what you're trying to do, and may be a lot cheaper.
Get a trial version and give it a go!
Google's ocropus is free opensource and one of the best