compilers – Devstyler.io https://devstyler.io News for developers from tech to lifestyle Thu, 12 Jan 2023 08:40:30 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.2 New GitHub Feature Makes Security Flaw Discovery Easier https://devstyler.io/blog/2023/01/12/new-github-feature-makes-security-flaw-discovery-easier/ Thu, 12 Jan 2023 08:39:19 +0000 https://devstyler.io/?p=98177 ...]]> GitHub now allows developers to scan their code for the “default setting” repository, which will help them detect potential security issues before they grow.

According to Github, with this new feature, developers will be able to configure the repository automatically and with as little effort as possible. It eases the work involved in scanning code in Python, JavaScript, and Ruby repositories.

Code scanning on GitHub is done using the CodeQL engine, and while it supports a wide variety of compilers, the feature is currently only available for Python, JavaScript, and Ruby. GitHub’s Walker Chabot says this will change very soon as the company looks to expand support to additional languages and will aim to have this in place by the summer.

Once “Enable CodeQL” is enabled the feature will automatically start looking for flaws in the repository.

The official GitHub blog also says that code scanning is free for everyone, and that enterprise users can also take advantage of it through the GitHub Advanced Security for GitHub Enterprise service.

]]>
OpenAI Releases Triton, a Programming Language for AI Workload Optimization https://devstyler.io/blog/2021/07/29/openai-releases-triton-a-rrogramming-language-for-ai-workload-optimization/ Thu, 29 Jul 2021 12:04:32 +0000 https://devstyler.io/?p=62328 ...]]> Yesterday, OpenAI released Triton, an open source, Python-like programming language that enables researchers to write highly efficient GPU code for AI workloads. Triton makes it possible to reach peak hardware performance with relatively little effort, OpenAI claims, producing code on par with what an expert could achieve in as few as 25 lines.

Deep neural networks have emerged as an important type of AI model, capable of achieving state-of-the-art performance across natural language processing, computer vision, and other domains. The strength of these models lies in their hierarchical structure, which generates a large amount of highly parallelizable work well-suited for multicore hardware like GPUs. Frameworks for general-purpose GPU computing such as CUDA and OpenCL have made the development of high-performance programs easier in recent years. Yet GPUs remain especially challenging to optimize, in part because their architectures rapidly evolve.

Domain-specific languages and compilers have emerged to address the problem, but these systems tend to be less flexible and slower than the best handwritten compute kernels available in libraries like cuBLAS, cuDNN, or TensorRT. Reasoning about all these factors can be challenging even for seasoned programmers. The purpose of Triton, then, is to automate these optimizations, so that developers can focus on the high-level logic of their code.

]]>
5 Top-Notch Libraries for C++ Programming https://devstyler.io/blog/2021/07/26/5-top-notch-libraries-for-c-programming/ Mon, 26 Jul 2021 15:11:46 +0000 https://devstyler.io/?p=61637 ...]]> C++ is a general-purpose systems programming language that is now more than 40 years old, having been designed in 1979. Far from losing steam, C++ still ranks near the top of multiple programming language popularity indexes.

Smoothing the path to C++ usage is broad support for the language among the makers of IDEs, editors, compilers, test frameworks, code quality, and other tools. Software developers also have at their disposal many excellent libraries to assist with building C++ applications. Here are 5 that C++ developers rely on.

Active Template Library

From Microsoft, Active Template Library (ATL) is a set of C++ classes for building COM (Common Object Model) objects, with support for COM features such as dual interfaces, standard COM enumerator interfaces, connection points, and ActiveX controls. Available with the Visual Studio IDE, ATL can be used to build single-threaded objects, apartment-model objects, free-threaded model objects, or both free-threaded and apartment-model objects.

Asio C++ library

The Asio C++ library is used for network and low-level I/O programming, offering a consistent asynchronous model. Providing basic building blocks for concurrency, C++ networking, and other types of I/O, Asio has been used in applications ranging from smartphone apps and games to highly interactive websites and real-time transaction systems. Projects using Asio include the WebSocketPP library and the DDT3 remote debugger for the Lua language. Asio is available as free open source under the Boost Software License, and supported on Linux, Windows, MacOS, and FreeBSD.

Cinder

Cinder is an open source library for “creative coding” in C++. Useful for applications such as audio, computational geometry, graphics, and video, Cinder supports platform-native windowing and event-handling, along with I/O abstraction, and has a built-in API for XML and JSON parsing. Designed around idiomatic C++ 11 features such as shared_ptr, the library ships with numerous samples. Cinder supports MacOS, iOS, Linux, Windows, and Windows UWP.

Eigen

Eigen is a C++ template library for linear algebra, including matrices, vectors, numerical solvers, and related algorithms. All matrix sizes are supported, from small, fixed matrices to arbitrarily large, dense matrices. Algorithms are selected for reliability. All standard numeric types are supported. For speed, Eigen features expression templates to intelligently remove temporaries and enable lazy evaluation. Freely available under the Mozilla Public License 2 and downloadable from the Eigen project page, Eigen has been fitted with an API described by proponents as expressive and clean and natural to C++ programmers. The test suite for Eigen has been run against many compilers to ensure reliability.

FloatX

FloatX, or Float eXtended, is a header-only library for low-precision, floating point type emulation. While natively compatible with C++ compilers, FloatX can be called by other languages such as Python or Fortran. Floating point types are extended beyond the native single and double precision types. Template types are provided that allow the user to select the number of bits used for the exponent as well as significant parts of the floating point number. FloatX is based on the idea of the FlexFloat library for emulating reduced-precision floating types, but implements a superset of FlexFloat functionality in C and provides C++ wrappers. FloatX emerged from the Open Transprecision Computing initiative. It is available free under the Apache License 2.0.

]]>