Visual Studio 2022 17.2 正式推出

微軟在去年底正式推出了第一款原生 64 位元的 Visual Studio 2022(17.0)後,其實已經有一次比較大的更新、17.1 了~

不過比較可惜的是,Heresy 這邊的程式因為踩到 Lambda + OpenMP 的問題,所以一直沒能把主要的建置環境切換到 Visual Studio 2022…

而現在,微軟終於推出解決該問題的 Visual Studio 2022 17.2 了!
官方的介紹是《Visual Studio 2022 17.2 is now available!》,比較完整個變化則可以參考官方的 Release Note

閱讀更多»

Visual C++ 終於正式支援 OpenMP 3 的 task 了

微軟的 Visual C++ 這幾年雖然對於 C++ 新的標準支援的算是相當積極,但是對於 OpenMP 的支援一直以來都很糟糕,儘管官方標準已經更新到 OpenMP 5.2 了,但是直到推出 Visual Studio 2019 的時候,卻還停留在 OpenMP 2.0 的超古老版本…

直到之前在 Visual Studio 2019 16.9 的時候,才終於試著開始幫 Visual C++ 的 OpenMP 加上新功能;當時主要的改進,是加入了 OpenMP 對於 SIMD 的支援,另外也開始試著要將 OpenMP 的實作切換到 LLVM 的版本。

而這次微軟又發布了《OpenMP Task Support for C++ in Visual Studio》,在最新的 Visual Studio 2022 17.2(還在預覽階段)中,在使用 LLVM OpenMP(加上 -openmp:llvm)的情況下,終於支援 OpenMP 3 的 task 這個 directive 了!

閱讀更多»

用 AI 來輔助寫程式:直接給你整個函式的 GitHub Copilot

GitHub Copilot(官網)是 GitHub 在 2021 年六月發布,一個透過 OpenAI(官網)的 Codex 系統(官網、應該是基於 GPT-3)來完成的 AI 程式輔助開發系統。

以往的程式輔助系統,大部分都是很局部的自動完成,例如自動完成要呼叫函式名稱、或是變數名稱;雖然算是很有幫助,但是其實相對侷限。

而 GitHub Copilot 則是透過深度學習技術,大幅強化了自動完成的能力,甚至變成可以只打註解、就給你整個函式的內容!在應用上的空間,算是提供了相當的程度。

閱讀更多»

Visual Studio 的 Solution Filter

在開發一個大型專案裡面,通常會有一堆小專案,彼此之間可能還會有很複雜的相依性;在 Visual Studio 裡,微軟是透過一個「方案」(solution、附檔名是 sln)來管理多個「專案」(project)的形式來做的,在開啟方案後,就會把所有的專案都載入。

但是實際上,大部分要開發的時候,其實都是針對特定專案來進行,其實只需要和他有關的專案就可以了,並不需要真的把所有的專案都載入。

為了這種需求,微軟其實有提供「方案篩選」的功能(官方文件),讓開發者可以在不修改方案的情況下,自行設定要載入那些專案、並儲存成一個 Solution Filter(副檔名是 slnf)的檔案,方便日後使用。閱讀更多»

Visual Studio 2022 Lambda + OpenMP 的問題

這篇算是紀錄一下,Heresy 這邊在想把開發環境從 Visual Studio 2019 升級到 Visual Studio 2022 時,踩到的新版編譯器在 lambda expression 這邊的地雷,算是稍微紀錄一下了。

Heresy 這邊踩到的地雷,是 lambda expression + OpenMP 的相容性問題;下面就是一個會出問題的簡單程式碼:

#include <iostream>
 
int main()
{
  auto f = []()
  {
    #pragma omp parallel for //Error
    for (int i = 0; i < 10; ++i)
    {
    }
  };
 
  return 0;
}

閱讀更多»

原生 64 位元的 Visual Studio 2022 正式推出

今年四月,微軟就有公布新的 Visual Studio 2022 會是第一款原生 64 位元的 Windows 整合式開發環境了~而從六月開始,微軟也不停地釋出新的預覽版,讓眾多的開發者幫忙找問題。

現在,Visual Studio 2022 終於推出正式版了!他的官方網站是 https://aka.ms/vs2022,官方的公告則是《Visual Studio 2022 now available》;下面則是官方的介紹影片:

閱讀更多»

C++AMP 已死

C++ AMP 是微軟在 2011 年發表、在 2012 年推出的一套適用於 GPGPU、大量平行化的 C++ 函式庫。他基本上算是相對高階的 GPGPU 開發方案,由於底層是使用 DirectX 來做的,所以理論上能支援不同廠牌的顯示卡(參考《C++ AMP 相關資料》)。

不過,由於 Heresy 這邊還是有考慮到要跨到 Linux 環境的問題,所以簡單玩了一下後,就沒有去認真研究這個東西了。(不過由於 C++AMP 屬於開放標準,倒也真有人在 CLANG/LLVM + OpenCL 弄出了 C++AMP 的實作;參考《Bringing C++AMP Beyond Windows via CLANG and LLVM》)

而前幾天,忽然和到 Google 推薦的文章《C++ AMPの死について》,這才發現原來 C++AMP 也已經被微軟賜死了…

閱讀更多»