rdna 2 support?

Will ROCM support the rdna 2 architecture when it is released in the future? I and a lot of others would love to be able to do some machine learning research on my personal computer and I would love to switch over to AMD because of their open sourced Linux drivers, but I'm not sure if I could actually make that switch if I can't replace the CUDA support in my Geforce card.
I think the lack of Navi support is already a missed opportunity for AMD, but it sort of makes sense not to spend a massive amount of time supporting a card that isn't really flagship-tier. However, if the rdna 2 series of cards includes cards significantly more powerful than the 5700XT this wouldn't be the case anymore.

AMD should support both RDNA 1 and 2. Otherwise people such as me will hop back to Nvidia after getting burned by 5700XT.

I agree, ideally it would be like CUDA where any Geforce GPU is supported. If AMD actually wants to compete in the ML market this is a must. People just getting into Machine Learning won't buy enterprise AMD GPUs if they can just buy a middle-tier RTX card.

Sadly never. AMD has a separate product line called CDNA for computing. I'm afraid RDNA architecture is not suitable for ML by design.

This has to change for AMD to be a viable option for startups and individual scientists.

@kevin335200  @bernharl  Well at least for Windows users is now possible to use any DX 12 capable device to use tensorflow, maybe AMD could implent something on Vulkan or maybe translate directml DirectX to Vulkan.

@limapedro Might as well use an Nvidia GPU with Cuda if I were to use proprietary software anyway. The reason I want an AMD GPU is because of the open source Linux driver...
Hopefully with ROCM being open source someone could be able to imlement RDNA2 support themselves is AMD refuses to!

Tensorflow's XLA backend already have targets that uses LLVM, and RDNA seems to be already in LLVM, I wonder if it's actually a lot of work to create a XLA backend that targets RDNA.
Then both Tensorflow and JAX would run on RDNA.

Apparently 5700xt is working in ROCm to some degree now (like darktable and blender but a bit unstable) ... RDNA2 probably isn't that different from RDNA1 compute wise and neither of them are incapable of compute, they just aren't optimized for it, CDNA is removing extra stuff from the GPU so they can scale to more CUs as well as reduce hardware overhead that exists in GCN and RDNA that ins requried to perform well for graphics (but doesn't really hurt compute either except maybe be a bit less power efficient given ideal code, RDNA can cope better with non ideal code though).
Getting compute working on RNDA is very important for workstation users as AMD does sell the pro cards it just hasn't got the same priority as upcoming cards I think we'll see it finally straighten out once RDNA2 and CDNA are out.

If RDNA2 support landed within four weeks after release date and had a better performance to RTX 3080 on FP32+Tensorflow, I would buy a bunch of it for my school laboratory.

I wouldn't hold my breath: chances of getting anything are low but if you're feeling optimistic I would rather bet on clover being first

We basically already have RDNA1 support... it just isn't mainline. So.. I doubt there is a ton else to do for RNDA2.

Apparently 5700xt is working in ROCm to some degree now (like darktable and blender but a bit unstable)

Darktable and blender should be just using OpenCL. OpenCL support is basically there since day 1 when 5700XT is released.

The same here. I'll be looking for a new card/system at the end of the year and the zen 3, together with the rdna2 look great, but I'll only buy it if rocm supports it decently. I recently used rocm on vega with linux and to be honest it works quite well now. The instructions are not too bad and it just worked afterwards.
However, I don't want to fiddle with issues and amd needs to indeed support these cards for non-datacenter-usage (individuals, schools, ...). If they can buy Xilinx, they can also hopefully invest a bit of money in good tensorflow support for invidivuals who work with tensorflow and get more foothold in the ecosystem.

ROCm 3.9 just released, still no RDNA support.

There are codes and branches for gfx1030, Guess RDNA2 maybe supported next year?
https://github.com/ROCmSoftwarePlatform/Tensile/tree/gfx10
https://github.com/RadeonOpenCompute/ROCm-Device-Libs/commit/bf43ad1b3da0e418e28f5c0ade4a2541a5f6d0d6

We basically already have RDNA1 support... it just isn't mainline. So.. I doubt there is a ton else to do for RNDA2.

But... without MIOpen it does not worth much.
For example there is no implementation of RDNA Wingorad kernels for convolution and without it you will get at best 1/2 of performance potential. Windograd kernels implemented in GCN assembly and there are way too many differences between RDNA and GCN. How different RDNA2 will be? Nobody outside AMD knows.
There was a year to release RNDA... it wasn't done.

Actually... It seems that RDNA 2 support has been discovered in ROCm codes... Just wait for ROCm 4.0, anyway.

Hi @bernharl and all,
ROCm will come up with RDNA2 support but not now.
It will be released in 2021, but no specific timelines as of now. Please stay tuned.

Hi @bernharl and all,
ROCm will come up with RDNA2 support but not now.
It will be released in 2021, but no specific timelines as of now. Please stay tuned.

Will it come with RDNA support as well or RDNA2 only?

@darkbasic This is what they told me:
https://github.com/RadeonOpenCompute/ROCm/issues/1172#issuecomment-747215616

Questions regarding RNDA2, specifically 6600XT
What support level is provided? It is clear that deep-learning/hip stack wound't work. However:

Does ROCm/OpenCL work?
Is it stable driver?
Does miopengemm work? Is performance tuned?
What level of MIOpen-OpenCL support is available? Does something work or it will not recognise this card?

I work on cross platform OpenCL deep learning library: https://github.com/artyom-beilis/dlprimitives currently I'm testing AMD on rx560 but it is 4 generations old card. So I bought 6600XT card and I need to know if I should go for Clover or amdgpu-pro drivers or I can use ROCM drivers for OpenCL as I do today.

I'm still waiting for that

Hi @bernharl and all,
ROCm will come up with RDNA2 support but not now.
It will be released in 2021, but no specific timelines as of now. Please stay tuned.

The 2021 Q4 is coming.

Hi @bernharl and all,
ROCm will come up with RDNA2 support but not now.
It will be released in 2021, but no specific timelines as of now. Please stay tuned.

The 2021 Q4 is coming.

I wonder what about RDNA1

To be honest. It's the same old story with rocm. How good it is for the
supported cards doesn't matter, as support for the normal retail cards,
which a lot of people have, is always years behind. From my perspective,
only intel and nvidia have decent software support for their whole line-up
from day 1.
Amd is not able to provide this decent software support, unless you buy the
datacenter version.
That's it for the machine learning part. On the retail side, it's even
worse. You can't implement client-side machine learning stuff on amd with
full optimization, as they don't support it decently up till now. Well,
maybe directml  will change it, but I don't believe tensorflow has a
directml backend just yet. Correct me if I'm wrong. Anyway, these questions
just aren't relevant with intel and nvidia. You know they'll support it
from what I'm seeing up till now.
Sorry for this negative rant, but amd just isn't committed to machine
learning at this moment, unless you deploy a datacenter and teach everyone
how to deploy rocm. It's not difficult, but it's only for people with a
datacenter.
Michel
On Sun, Sep 5, 2021 at 2:45 PM fishhf @.***> wrote:

Hi @bernharl https://github.com/bernharl and all,
ROCm will come up with RDNA2 support but not now.
It will be released in 2021, but no specific timelines as of now. Please
stay tuned.
The 2021 Q4 is coming.
I wonder what about RDNA1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/RadeonOpenCompute/ROCm/issues/1180#issuecomment-913148458,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ7X3WY5RPGOVMSR2WDCA3UANQ7VANCNFSM4OYGP7XA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

To be honest. It's the same old story with rocm. How good it is for the
supported cards doesn't matter, as support for the normal retail cards,
which a lot of people have, is always years behind. From my perspective,
only intel and nvidia have decent software support for their whole line-up
from day 1.
Amd is not able to provide this decent software support, unless you buy the
datacenter version.
That's it for the machine learning part. On the retail side, it's even
worse. You can't implement client-side machine learning stuff on amd with
full optimization, as they don't support it decently up till now. Well,
maybe directml  will change it, but I don't believe tensorflow has a
directml backend just yet. Correct me if I'm wrong. Anyway, these questions
just aren't relevant with intel and nvidia. You know they'll support it
from what I'm seeing up till now.
Sorry for this negative rant, but amd just isn't committed to machine
learning at this moment, unless you deploy a datacenter and teach everyone
how to deploy rocm. It's not difficult, but it's only for people with a
datacenter.
Michel
On Sun, Sep 5, 2021 at 2:45 PM fishhf @.***> wrote:

Hi @bernharl https://github.com/bernharl and all,
ROCm will come up with RDNA2 support but not now.
It will be released in 2021, but no specific timelines as of now. Please
stay tuned.
The 2021 Q4 is coming.
I wonder what about RDNA1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/RadeonOpenCompute/ROCm/issues/1180#issuecomment-913148458,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ7X3WY5RPGOVMSR2WDCA3UANQ7VANCNFSM4OYGP7XA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@Indeed

but I don't believe tensorflow has a directml backend just yet. Correct me if I'm wrong. Anyway, these questions just aren't relevant with intel and nvidia. You know they'll support it from what I'm seeing up till now. Sorry for this negative rant, but amd just isn't committed to machine learning at this moment,

To be honest AMD's software is poor. I bought 6600xt that on the box is written Windows 7 is supported... yet no drivers available (lucky me Windows is my secondary role for machine)
I must say that OpenCL works. I had both rocm and amdgpu-pro installed (I wasn't able to run vulkan with 4.3 drivers for some reason so I went back to amdgpu-pro - at least it has support of my second card rx560 for OpenCL on-chipset-connected PCI-E.
In any case to run training on RDNA2 currently you have Keras+PlaidML, Caffe-OpenCL and my DLPrimitives library I'm working on it right now.
You can see my benchmarks here: https://github.com/artyom-beilis/dlprimitives/blob/master/docs/summary.md#benchmarks-gtx-1080 for 1080/2060s/6600xt that are roughly have similar flopws/memory speed (+-15%)
To be honest I gave up on ROCm, I cound't build pytorch out of the box on rocm 4.3, and apparently support of rx500 series had been "downgraded" so I cound't run out of the box TF or PT on my rx560 once I did a mistake upgrading from rocm 3.7 to 4.3 - I cound't run RF or PT any more.
The only reason I'm looking into AMD's stuff is because it is open source unlike NVidia's closed cudnn/cublas/cuda. I don't like that nvidia hides algorithms and optimizations from me. Also I really hate the need to upgrade cuda API when updating GPU.
I'm working on Open source OpenCL based solution that would work on Windows, Linux - actually any platforms that supports OpenCL.

Thanks for the report @artyom-beilis - so, in your opinion would buying an RDNA2 card (e.g. 6800) with the intention of using PlaidML + OpenCL be a good idea? Did you try out PlaidML and Caffe-OpenCL before writing DLPrimitives?
It won't be my primary GPU for deep learning (I have a main NVIDIA card), so it will be more as a fun experiment. I need to either buy a new RDNA2 GPU with PlaidML+OpenCL, or try to look for older Vega GPUs like the Radeon VII to use ROCm, which are super expensive and most likely have been mined on in their lifetime.

Did you try out PlaidML and Caffe-OpenCL before writing DLPrimitives?

I'm active Caffe user and one of the reasons I started using it was OpenCL support.
Caffe-OpenCL has relatively decent performance but still isn't as good as cudnn/miopen (1/2-1/3 in comparison to caffe-cudnn/hipCaffe).
But it has somewhat bigger problems: (a) Caffe isn't developed any more (b) it has very poor memory optimization, so for example with PT/Keras/TF I can get batch of 32 images of ResNet50 on 8GB, for caffe it is only 8-12. I still probably try to add dlprimitives support to Caffe as it is fastest path to get working OpenCL framework with Ok performance.
Regarding PlaidML its performance is poor and even more so on RDNA2. Another problem is that Keras has dropped muti-backend support so its future isn't clear - they are working on being integrated to TF but... these are plans.
Now there is dlprimitives - it is new, fresh - disclosure I work on it. It has very few operators and basic docs but it has decent performance.
Below 6600xt performance (compared with limitations of Caffe)
                alexnet/64  resnet18/16     resnet50/b8 vgg16/8
dlprim          77.581      59.989          93.830      155.335
caffe           98.2334     117.525         201.92      263.124
keras/plaidml   497.770     384.862         517.945     765.175

But in general I was able go get decent performance comparable to Keras+TF (somewhat lower) when I compare on GTX 1080 or 2060. So I assume similar would be on 6600xt since they are +- with same range of performance.
See details of benchmarks
https://github.com/artyom-beilis/dlprimitives/blob/master/docs/6600_vs_1080_2060s.md

Please let 5.0 support the 6600xt, and 6600 cards with kernel 5.11 or newer!

Why didn't I find this thread a month ago when I mistakenly put my money on the wrong horse - 6900XT... now I need to sell it as second hand just to buy an NVidia GForce that will do Pytorch...
What's for sure, AMD has made it very vauge which cards support what technology. Was it for pure greediness or simply because AMD isn't strong with documentation?
Guess both...

Why didn't I find this thread a month ago when I mistakenly put my money on the wrong horse - 6900XT... now I need to sell it as second hand just to buy an NVidia GForce that will do Pytorch... What's for sure, AMD has made it very vauge which cards support what technology. Was it for pure greediness or simply because AMD isn't strong with documentation? Guess both...

Take a look on this project:
https://github.com/artyom-beilis/dlprimitives
https://github.com/artyom-beilis/pytorch_dlprim
It is early version but I already get decent performance. You don't need ROCm

Why didn't I find this thread a month ago when I mistakenly put my money on the wrong horse - 6900XT... now I need to sell it as second hand just to buy an NVidia GForce that will do Pytorch... What's for sure, AMD has made it very vauge which cards support what technology. Was it for pure greediness or simply because AMD isn't strong with documentation? Guess both...

Take a look on this project:
https://github.com/artyom-beilis/dlprimitives https://github.com/artyom-beilis/pytorch_dlprim
It is early version but I already get decent performance. You don't need ROCm. Also hopefully ROCm will be ready soon with RDMA support.

Impressive, but how mature is it?

It is on early but most of standard vision networks alexnet, resnet, vgg, densenet161, shufflenet_v2, mobilenets, regnet etc work and validated in both forward and backpropogation.
So don't expect everything just work but it is on-going and active project.

Was it for pure greediness or simply because AMD isn't strong with documentation?

@

Was it for pure greediness or simply because AMD isn't strong with documentation?

@rubmz Considering the staggering cost for developing both CPU and GPU, and the fact that AMD is a much smaller company compared to Intel or Nvidia, I believe it's more of the latter situation.
It is quite familiar to Radeon fans that AMD fails to provide full support for its new product at launch time with new driver, in terms of either functionality or performance.

Was it for pure greediness or simply because AMD isn't strong with documentation?

@rubmz Considering the staggering cost for developing both CPU and GPU, and the fact that AMD is a much smaller company compared to Intel or Nvidia, I believe it's more of the latter situation.
It is quite familiar to Radeon fans that AMD fails to provide full support for its new product at launch time with new driver, in terms of either functionality or performance.

AMD could simply put up a page with more simple card -> tech map. Not all ...well .. card buyers, know what RDNA2 or GCN (or ROCM...) means. Even if you dig in deeper it's not too clear which term goes where...

The grotesque about it all, is the cards AMD DO provide support for ROCM/PyTorch are 3~4 years old and far far weaker...

It's a shame that somebody can do this in their free time (I thought so),
but AMD isn't willing to spend the resources on this. The ROCM team seems
great, but I have given up on AMD on this front (unfortunately). No hassle
approaches, so you can focus on the work at hand, seems to be intel or
nvidia.
The only positive thing I heard is that facebook/meta has a deal with AMD
now, but still. That's probably only for the instinct cards.
On Fri, Nov 12, 2021 at 7:42 PM rubmz @.***> wrote:

The grotesque about it all, is the cards AMD DO provide support for
ROCM/PyTorch are 3~4 years old and far far weaker
https://technical.city/en/video/Radeon-PRO-WX-9100-vs-Radeon-RX-6900-XT
...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/RadeonOpenCompute/ROCm/issues/1180#issuecomment-967335184,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ7X3RGAVC5HWMTBLABR3TULVNY5ANCNFSM4OYGP7XA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

The grotesque about it all, is the cards AMD DO provide support for ROCM/PyTorch are 3~4 years old and far far weaker...

Except that isn't true as evidenced by the closure of this ticket and official support for the W6800.... which is the same chip as the 6900XT you referenced.
Also we still have no indication that any of the older GPUs newer than the R9 series have been dropped other than MI25 (and that seems to still be up for debate since some AMDers dissent this drop of support also since its just a Vega10.

I'm not going into details here, but the fact is that AMD doesn't really
advertise rocm (pytorch, tensorflow, ...) as supported for their normal
cards like nvidia (and apparently also intel) does. Let's say you develop a
nice neural network for a consumer application, which is nowadays maybe a
corner case, but it's growing. Which platform should one target?
Mac is easy ...
nvidia is indeed limited to external cards or more expensive laptops, but
you know it's well supported and works fine normally.
intel is going to support all their processors (let's say from tigerlake)
and. well, forget the mobile market with the apu's. Forget the desktop
market, because it isn't officially supported on any card.
So, if someone has to make a choice, besides for a datacenter, currently, I
wouldn't choose AMD if the price is anywhere in the neighborhood of the
other 2.
Don't get me wrong. I like ROCM and I like it's opensource and well
supported on linux. I used it with tensorflow in the past and it worked
well (vega), but you can't compare it to the support that the others
provide on this front.
But please correct me if this seems wrong.
Kind regards
On Fri, Nov 12, 2021 at 9:34 PM cb88 @.***> wrote:

The grotesque about it all, is the cards AMD DO provide support for
ROCM/PyTorch are 3~4 years old and far far weaker
https://technical.city/en/video/Radeon-PRO-WX-9100-vs-Radeon-RX-6900-XT
...
Except that isn't true as evidenced by the closure of this ticket and
official support for the W6800.... which is the same chip as the 6900XT you
referenced.
Also we still have no indication that any of the older GPUs newer than the
R9 series have been dropped other than MI25 (and that seems to still be up
for debate since some AMDers dissent this drop of support also since its
just a Vega10.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/RadeonOpenCompute/ROCm/issues/1180#issuecomment-967504418,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ7X3R3CIWG7XBC4F3B4EDULV27FANCNFSM4OYGP7XA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

In general AMD's support of their cards is poor.

No APUs (and AMD's APUs are most powerful today).
No Windows/Mac
No RDNA1/2 yet,
GCN4 (like rx 570) require direct PCI-E lines to CPU (and declared as dropped)

Quality of drivers... There are Intel GPU drivers (excellent), there are NVidia drivers (not perfect but work) and the are... AMD. My graphics card crashing if I overuse memory or virtually anything else little bit less standard.
There are two good things about rocm:

It is opensource (mostly https://github.com/ROCmSoftwarePlatform/MIOpen/issues/480)
With MIOpen It gives comparable performance to cudnn

But in general if you looking for something that allow you do be less nVidia dependent it isn't the way

There is the OneAPI from Intel, which supposedly might/should support all AMD cards (on linux ...).
Yet I'm not sure if/how?

There is the OneAPI from Intel, which supposedly might/should support all AMD cards (on linux ...). Yet I'm not sure if/how?

I don't remember if oneAPI incuded rocm or not... but even if it does it will be dependent on ROCm.
See today you can try to use Keras with PlaidML (with poor performance) or Caffe/OpenCL - (with no dev in near future and old arch) and of course early stage dlprimitives/pytorch-opencl-dlprimitives that I want to integrate AMD's MIOpen-OpenCL, Intel's and AMD's open source DNN libraries into it for better performance in not so far future.

Well there is pytorch-directml now on pre release. I've been using tensorflow-directml for a couple of months, it's great, I hope that they migrate to tensorflow 2.x soon and enable multi-gpu support, there were some article about how AMD improved performance on directml a couple of weeks ago.

Well, there is pytorch-directml now on pre release. I've been using tensorflow-directml for a couple of months, it's great, I hope that they migrate to tensorflow 2.x soon and enable multi-gpu support, there were some article about how AMD improved performance on directml a couple of weeks ago.
Sources down below:
https://devblogs.microsoft.com/windowsai/introducing-pytorch-directml-train-your-machine-learning-models-on-any-gpu/
https://wccftech.com/amd-microsoft-bring-tensorflow-directml-to-life-4x-improvement-with-rdna-2-gpus/

For a moment there I had grown expectations, then I read it's for windows....

@rubmz Yeah it's a downside of directml, I hope that Microsoft could bring for linux, maybe there is a way of running, it can run on Windows Subsystem for linux, so I guess is just some piece missing. But the directml stack seems the best one now, it can run on almost any GPU available now 92% of current GPUs according to steam hardware survey.

Don't think it would work on linux, but hey guess some AMD users have Windows. So, happy for them!
I'm gona sell this card 😅 no more AMD for me even if I will have to pay a few hundreds of dollars more...

Hi All, With our internal validation, we are facing few critical issues with Navi cards and hence we are taking little more time to deliver official support with ROCm. Please stay tuned for 5.0, we might expect good news with 5.0.

2022 is here, ROCm 5.0 is out, yet no progress or update on this issue. I guess having any hope at this point would be foolish.

Hi @husmen
Navi21 is enabled from ROCm 5.0 onwards. Request to try the same. Thank you.

Please compare this to Intel, although I think the room team is fantastic
and probably with passion.
I have an Intel NUC pro with. Tiger lake we graphics. Intel had optimized
libraries for tensorflow, pytorch, scikit, ...
I said it before and will reiterate, there is no apparent interest from AMD
management in ml for devs with non-datacenter hardware. It's a shame after
all these years.
Michel
Op wo 23 feb. 2022 11:31 schreef ROCmSupport @.***>:

Hi @husmen https://github.com/husmen
Navi21 is enabled from ROCm 5.0 onwards. Request to try the same. Thank
you.
—
Reply to this email directly, view it on GitHub
https://github.com/RadeonOpenCompute/ROCm/issues/1180#issuecomment-1048641755,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ7X3QCTKMOJQPTXNPPM4TU4SZPLANCNFSM4OYGP7XA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Navi21 is enabled from ROCm 5.0 onwards. Request to try the same. Thank you.

Does it mean MIOpen supports NAVI? Does it mean I can build pytorch and run in on RDNA GPU?

Navi21 is enabled from ROCm 5.0 onwards. Request to try the same. Thank you.

Does it mean MIOpen supports NAVI? Does it mean I can build pytorch and run in on RDNA GPU?

Yes

Does it mean MIOpen supports NAVI? Does it mean I can build pytorch and run in on RDNA GPU?

Yes

So why it doesn't appear in release notes: https://github.com/RadeonOpenCompute/ROCm ?

Does it mean MIOpen supports NAVI? Does it mean I can build pytorch and run in on RDNA GPU?

Yes

So why it doesn't appear in release notes: https://github.com/RadeonOpenCompute/ROCm ?

Spamming this ticket with AMD hate isn't helpful. And there are two Navi21 cards listed as supported in that very link so ... yeah. It would be nice if they officially supported all cards and all AMD GPUs but that appears to much to ask on current gen hardware and with the resources they have so lay off.

I see

PRO v620, PRO W6800

i.e. if I own rx 6600xt, 6700xt or 6500 I need to hope it will work :-)...
Ok good step forward. I hope non-pro GPU will work as well.

Spamming this ticket with AMD hate isn't helpful

It isn't spamming, It is clarification.
I just honestly disappointed of the level of AMD commitment for deep learning world :-)

Oh… just do some tests before making remarks, please!
All it takes is just someone who indeed has an RX6000 card and make a try to setup ROCm in his system. If you have one of those, just do the test; if you don't have one, then shut up and wait someone else to do it. What is the point yelling here? Are you really waiting for a good result?

Installed ROCm 5.2.0
Here's rocminfo output:
ROCk module is loaded
HSA System Attributes
Runtime Version:         1.1
System Timestamp Freq.:  1000.000000MHz
Sig. Max Wait Duration:<PHONE_NUMBER>3709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model:           LARGE
System Endianness:       LITTLE
==========
HSA Agents

Agent 1

Name:                    AMD Ryzen 7 3700X 8-Core Processor
Uuid:                    CPU-XX
Marketing Name:          AMD Ryzen 7 3700X 8-Core Processor
Vendor Name:             CPU
Feature:                 None specified
Profile:                 FULL_PROFILE
Float Round Mode:        NEAR
Max Queue Number:        0(0x0)
Queue Min Size:          0(0x0)
Queue Max Size:          0(0x0)
Queue Type:              MULTI
Node:                    0
Device Type:             CPU
Cache Info:
L1:                      32768(0x8000) KB
Chip ID:                 0(0x0)
Cacheline Size:          64(0x40)
Max Clock Freq. (MHz):   3600
BDFID:                   0
Internal Node ID:        0
Compute Unit:            16
SIMDs per CU:            0
Shader Engines:          0
Shader Arrs. per Eng.:   0
WatchPts on Addr. Ranges:1
Features:                None
Pool Info:
Pool 1
Segment:                 GLOBAL; FLAGS: FINE GRAINED
Size:                    32790724(0x1f458c4) KB
Allocatable:             TRUE
Alloc Granule:           4KB
Alloc Alignment:         4KB
Accessible by all:       TRUE
Pool 2
Segment:                 GLOBAL; FLAGS: KERNARG, FINE GRAINED
Size:                    32790724(0x1f458c4) KB
Allocatable:             TRUE
Alloc Granule:           4KB
Alloc Alignment:         4KB
Accessible by all:       TRUE
Pool 3
Segment:                 GLOBAL; FLAGS: COARSE GRAINED
Size:                    32790724(0x1f458c4) KB
Allocatable:             TRUE
Alloc Granule:           4KB
Alloc Alignment:         4KB
Accessible by all:       TRUE
ISA Info:

Agent 2

Name:                    gfx1030
Uuid:                    GPU-XX
Marketing Name:          AMD Radeon RX 6700 XT
Vendor Name:             AMD
Feature:                 KERNEL_DISPATCH
Profile:                 BASE_PROFILE
Float Round Mode:        NEAR
Max Queue Number:        128(0x80)
Queue Min Size:          64(0x40)
Queue Max Size:          131072(0x20000)
Queue Type:              MULTI
Node:                    1
Device Type:             GPU
Cache Info:
L1:                      16(0x10) KB
L2:                      3072(0xc00) KB
L3:                      98304(0x18000) KB
Chip ID:                 29663(0x73df)
Cacheline Size:          64(0x40)
Max Clock Freq. (MHz):   2725
BDFID:                   3072
Internal Node ID:        1
Compute Unit:            40
SIMDs per CU:            2
Shader Engines:          4
Shader Arrs. per Eng.:   2
WatchPts on Addr. Ranges:4
Features:                KERNEL_DISPATCH
Fast F16 Operation:      TRUE
Wavefront Size:          32(0x20)
Workgroup Max Size:      1024(0x400)
Workgroup Max Size per Dimension:
x                        1024(0x400)
y                        1024(0x400)
z                        1024(0x400)
Max Waves Per CU:        32(0x20)
Max Work-item Per CU:    1024(0x400)
Grid Max Size:<PHONE_NUMBER>(0xffffffff)
Grid Max Size per Dimension:
x<PHONE_NUMBER>(0xffffffff)
y<PHONE_NUMBER>(0xffffffff)
z<PHONE_NUMBER>(0xffffffff)
Max fbarriers/Workgrp:   32
Pool Info:
Pool 1
Segment:                 GLOBAL; FLAGS: COARSE GRAINED
Size:                    12566528(0xbfc000) KB
Allocatable:             TRUE
Alloc Granule:           4KB
Alloc Alignment:         4KB
Accessible by all:       FALSE
Pool 2
Segment:                 GROUP
Size:                    64(0x40) KB
Allocatable:             FALSE
Alloc Granule:           0KB
Alloc Alignment:         0KB
Accessible by all:       FALSE
ISA Info:
ISA 1
Name:                    amdgcn-amd-amdhsa--gfx1030
Machine Models:          HSA_MACHINE_MODEL_LARGE
Profiles:                HSA_PROFILE_BASE
Default Rounding Mode:   NEAR
Default Rounding Mode:   NEAR
Fast f16:                TRUE
Workgroup Max Size:      1024(0x400)
Workgroup Max Size per Dimension:
x                        1024(0x400)
y                        1024(0x400)
z                        1024(0x400)
Grid Max Size:<PHONE_NUMBER>(0xffffffff)
Grid Max Size per Dimension:
x<PHONE_NUMBER>(0xffffffff)
y<PHONE_NUMBER>(0xffffffff)
z<PHONE_NUMBER>(0xffffffff)
FBarrier Max Size:       32
*** Done ***
But compiling an example code from https://github.com/ROCm-Developer-Tools/HIP-Examples/blob/master/vectorAdd/vectoradd_hip.cpp
still shows error:
"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"
So, no Joy... Still Sep. 11th 2022.

@Taris9047
Please show you compile cmd args, maybe you used wrong AMDGPU_TARGETS.
The plain hip cpp sample didn't depends re-build package, so the hipErrorNoBinaryForGpu could only report by itself.
Although I had no gfx1030 card, but navi10 card can run on ROCm-5.2.3 with HSA_OVERRIDE_GFX_VERSION=10.3.0 to pretend gfx1030 card, so it can verify that rocm-libs and tensorflow-rocm can support gfx1030 properly.

My makefile is as is:
ifeq (,$(HIP_PATH))
	HIP_PATH=/opt/rocm
endif

HIPCC=$(HIP_PATH)/bin/hipcc
TARGET=hcc

SOURCES = vector_add.cpp
OBJECTS = $(SOURCES:.cpp=.o)

EXECUTABLE = ./vector_add

CXXFLAGS = -g
CXX=$(HIPCC)

.PHONY: test

all: $(EXECUTABLE) test

$(EXECUTABLE): $(OBJECTS)
	$(HIPCC) $(OBJECTS) -o $@

test: $(EXECUTABLE)
	$(EXECUTABLE)

clean:
	rm -rf $(EXECUTABLE) $(OBJECTS) $(HIP_PATH)/src/*.o

So, I'm not sure what went wrong.. AMDGPU_TARGETS does not exist. I've also tried with the HSA_OVERRIDE_GFX_VERSION=10.3.0 hack but no joy.
I can confirm tensorflow-rocm can run with the hack, though!

Try AMD_LOG_LEVEL=3 ./vector_add to see which hsa target missed.

:3:rocdevice.cpp            :416 :<PHONE_NUMBER>0 us: 215311: [tid:0x7fcf63de6880] Initializing HSA stack.
:3:comgrctx.cpp             :33  :<PHONE_NUMBER>3 us: 215311: [tid:0x7fcf63de6880] Loading COMGR library.
:3:rocdevice.cpp            :207 :<PHONE_NUMBER>7 us: 215311: [tid:0x7fcf63de6880] Numa selects cpu agent[0]=0xd98c20(fine=0xd98e10,coarse=0xd990d0) for gpu agent=0xd9a780
:3:rocdevice.cpp            :1611:<PHONE_NUMBER>1 us: 215311: [tid:0x7fcf63de6880] HMM support: 1, xnack: 0, direct host access: 0

:3:hip_context.cpp          :50  :<PHONE_NUMBER>3 us: 215311: [tid:0x7fcf63de6880] Direct Dispatch: 1
:1:hip_code_object.cpp      :460 :<PHONE_NUMBER>0 us: 215311: [tid:0x7fcf63de6880] hipErrorNoBinaryForGpu: Unable to find code object for all current devices!
:1:hip_code_object.cpp      :461 :<PHONE_NUMBER>3 us: 215311: [tid:0x7fcf63de6880]   Devices:
:1:hip_code_object.cpp      :464 :<PHONE_NUMBER>7 us: 215311: [tid:0x7fcf63de6880]     amdgcn-amd-amdhsa--gfx1030 - [Not Found]
:1:hip_code_object.cpp      :468 :<PHONE_NUMBER>0 us: 215311: [tid:0x7fcf63de6880]   Bundled Code Objects:
:1:hip_code_object.cpp      :485 :<PHONE_NUMBER>3 us: 215311: [tid:0x7fcf63de6880]     host-x86_64-unknown-linux - [Unsupported]
:1:hip_code_object.cpp      :483 :<PHONE_NUMBER>6 us: 215311: [tid:0x7fcf63de6880]     hipv4-amdgcn-amd-amdhsa--gfx1031 - [code object v4 is amdgcn-amd-amdhsa--gfx1031]
"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"
Aborted (core dumped)

Here it is.
Also, here's compile (makefile) message.
/opt/rocm/hip/bin/hipcc -g   -c -o vector_add.o vector_add.cpp
/opt/rocm/hip/bin/hipcc vector_add.o -o vector_add
./vector_add
"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"
make: *** [Makefile:25: test] Aborted (core dumped)

It is weird that the add_vector compiled with amdgpu_target gfx1031, which need gfx1030 on runtime. So it reports missfire.
I think you shoud chech hip-config

I can also run some tensorflow tutorial codes without too much of problem either. ... Also, tensorflow-rocm finds my 6700XT without problem!

If this is correct, ROCm should support all modern AMD GPUs. I'm contemplating building a Linux desktop in future, using an AMD GPU + ROCm instead of NVIDIA + CUDA. The 7900 XTX has extreme performance (61 TFLOPS), although I'll wait two more generations until 2026. If Moore's Law keeps up, that would be ~20x more powerful than my Apple M1 Max (10 TFLOPS), but cheaper a new MacBook Pro. I'd use it mostly for molecular dynamics, although AI support in TensorFlow is helpful.
Would such a use case be viable? I'm willing to spend time working around minor bugs, if this lets me stay independent of CUDA.


Update machine-controller to v1.5.8

What this PR does / why we need it:
Update machine-controller to v1.5.8.
Does this PR introduce a user-facing change?:
Update machine-controller to v1.5.8

/assign @kron4eg

/lgtm


fix(tiny-go): fix generated code in type_flags function

prior to this fix, wit content as follows
    /// Flags determining the method of how paths are resolved.
    flags path-flags {
        /// As long as the resolved path corresponds to a symbolic link, it is
        /// expanded.
        symlink-follow,
    }

is generated as
(notice the dash between SYMLINK-FOLLOW)
type WasiFilesystem0_2_0_TypesPathFlags uint64
const (
WasiFilesystem0_2_0_TypesPathFlags_SYMLINK-FOLLOW WasiFilesystem0_2_0_TypesPathFlags = 1 << iota
)

After the fix:
type WasiFilesystem0_2_0_TypesPathFlags uint64
const (
WasiFilesystem0_2_0_TypesPathFlags_SymlinkFollow WasiFilesystem0_2_0_TypesPathFlags = 1 << iota
)

requesting review from @Mossaka @alexcrichton

Thanks! Mind dropping a test case for this in tests/codegen/*.wit as well?

https://github.com/bytecodealliance/wit-bindgen/actions/runs/8470579347/job/23208633413#step:13:809 - added a testcase to demonstrate the failure


Add more static analysis to CI

E.g this blog post has great info on how to use cmake to do some great static anlysis.
https://blog.kitware.com/static-checks-with-cmake-cdash-iwyu-clang-tidy-lwyu-cpplint-and-cppcheck/
I've set up the following on some of my projects:
"link what you use"
cmake -DCMAKE_LINK_WHAT_YOU_USE=TRUE .
cmake --build . --target all

include what you use:
cmake -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/lib/llvm/8/bin/include-what-you-use .
cmake --build . --target all

clang tidy
cmake -DCMAKE_CXX_CLANG_TIDY=/usr/lib/llvm/8/bin/clang-tidy .
cmake --build . --target all

clang static analyzer (different than clang tidy)
export PATH="/usr/lib/llvm/8/bin:$PATH"
scan-build -o scanlogs cmake -DCMAKE_BUILD_TYPE=Debug .
scan-build -o scanlogs make -j `nproc`

@jonesmz , it seems good. Could you write a PR to support the feature?

Sure.
Will try.


feat(plonk): support folding of public inputs in step circuit

Currently, we don't allow step circuit contains public inputs. Thus, whenever we fold step circuit that contains public inputs, we have to modify the logic to include the public io information into z_in and z_out. This is cumbersome and not necessary, since it is possible to directly fold instance columns from step circuit. To do so, we also need add a new function to the step_circuit interface that return its public inputs..
Motivation
In zkEVM circuit, the public inputs are keccak hash of the following data:
pub struct pi_bytes {
   chain_id,
   prev_state_root,
   after_state_root,
    swithdraw_trie_root,
	data_hash,
    chunk_txbytes_hash,
}

When we fold zkEVM circuit, there are several ways to modify it:
(1) z_in=prev_state_root, z_out=after_state_root. This requires least change, however, the public inputs verification is missing or not consumed.
(2) z_in=prev_pi_bytes, z_out=pi_bytes. In this case, we can re-use synthesize_sub method in pi_circuit to treat z_out. Additionally, we need add verification that after_state_root is in z_in andprev_pi_bytes.after_state_root=pi_bytes.prev_state_root. To do so, we have to modify pi_circuit which is okay. But we also need to import the auxiliary data from previous block/witness to verify the state_root is in prev_pi_byte. This requires changing the witness importing interface since the witness for the circuit doesn't have data_hash etc. of previous block/chunk.  This is not a good practice
(3) similar to (2) but remove prev_state_root1 in pi_bytes`, this requires even more changes than (2).
However, after we support folding of the public inputs (i.e. instance columns), we can adopt (1) and only has minimal code modification without changing the witness importing interface.

[ ] Spec
[ ] off-circuit
[ ] on-circuit
[ ] e2e

Waiting for spec for estimate

Spec
The idea is not to touch on-circuit part and just the off-circuit part. Here are a list of items to be modified:

halo2 expr -> sirius expr for instance column
witness collector/witness collection for instance column
copy constraint only for one instance col ->  for multiple instance columns
Add step circuit instance columns as part of witness W0 (C0=[W0] changed as well).
In step circuit interface add a new fn to output public inputs
is_sat_relaxed and is_sat : commitment checking should include public io and accumulated public io

I.e. your idea is not to minimize the instance, but just to take it on a common basis with witness, while leaving X0,X1 in the current implementation
am I summarizing this correctly?
Regarding the last point, isn't public input not the responsibility of the step-circuit? We can collect it by having a specific circuit on hand, can't we?

"take it on a common basis with witness, while leaving X0,X1 in the current implementation", that's right. But I am not quite get the "minimize the instance" part.
It is the responsibility of the step-circuit to provide the public input, we can define an function fn public_io() in the interface. We will try to avoid duplicate synthesize (i.e. process_step as of now) if possible, at least together with process_step. We eventually want to remove the duplicated synthesize

It is the responsibility of the step-circuit to provide the public input, we can define an function fn public_io() in the interface. We will try to avoid duplicate synthesize (i.e. process_step as of now) if possible, at least together with process_step. We eventually want to remove the duplicated synthesize

Well on the other hand within halo2, any public_io is passed separately to prover. In general, let's discuss the design of a specific API by code example in future impl-draft, the general idea is clear

Before
z_in: [F; ARITY]
After
struct StepCircuitInput {
    z_in: [F; ARITY],
    instances: Vec<Vec<F>>,
}

Double check logic

Push instances columns as part of witness
Use accumulated instances column in is_sat_acc for use it as part of W_commitment check

Pub API of everything
Two options of API:

Maybe fn pub_io in step-circuit
pub_io: Vec<Vec<_>> as part of IVC design (like halo2)

Impl

Modify API | 1 sp
StepCircuit instance-commitment work | 2 sp
Add off-circuit FoldingScheme::fold_instances | 1 sp
Modify is_sat_acc | 3 sp (because only at this point we can debug\test two previous one)
Modify is_sat_perm | 3 sp

Estimate: 10 sp * 1.5 = 15 sp

The last idea with instance-verification is not suitable, let's continue searching for possible variants

Pub api problem now is #329

There is one issue in above proposal. To calculate the rlc of step circuits' public inputs, the verifier needs to know the randomness of folding in each step which is not exposed to outside. One way is the verifier can follow the same process to absorb the instances of each step and calculate the randomness using poseidon hash. However, there is a simpler and better way to do this:
We add a new component in ivc circuit F'.  It takes two inputs: (1) X_acc accumulated hash of public io of previous teps (2) X_i: new public io of step circuit of current step i. It outputs poseidon hash H(X_acc, X_i).
Since the public inputs is actually of the form X_io=[F; num_io], we first do one hash before feed into the circuit: X_i=H(X_io). This way, the new component will have shape independent of num_io. In the case that there is no public io for step circuit, we can just use a default value for X_io.

let y = step_circuit.public_inputs();
let cell = assign(a_0,b_0, y);
constrain_equal(cell, instance_column, 0);

The method from step circuit returns the values themselves, not the cells. So it will be necessary during configure step-folding-circuit to understand which instance columns there are and aggregate all their values in random oracle.
But there is a security problem here, that step-circuit in theory may return different public inputs and we will not be able to trace it in any way, but it is not so critical.

let y = step_circuit.public_inputs();
let cell = assign(a_0,b_0, y);
constrain_equal(cell, instance_column, 0);

The method from step circuit returns the values themselves, not the cells. So it will be necessary during configure step-folding-circuit to understand which instance columns there are and aggregate all their values in random oracle.
But there is a security problem here, that step-circuit in theory may return different public inputs and we will not be able to trace it in any way, but it is not so critical.

This is the tricky part. Although it is possible that the prover assign different/invalid public inputs at each step, there are copy constraints (1) between step circuit to public inputs and (2) between ivc circuit to public inputs.
This way, we have connected the public inputs assigned in ivc circuit with step circuit.
Now the folding of public input columns are not really matter. What matter is that we can calculate and update the public inputs by H(acc, H(new_io)), which the verifier can easily compute offline.


Correct the way the Copilot extension is verifying chain of trust for proxy certificates

We are receiving "certificate has expired" when opening VS Code from the Github Copilot extension. We had another support ticket open for this issue that is now close: 2711036
The issue appears to be tied to the way the extension is validating the proxy certificate chain. Due to some expired CA certificates in our TRCA store the validation if failing. Removing a specific Issuing CAs certificates from the TRCA resolves the issue however this is not an easy workaround to implement enterprise wide due to the possibility of code signing certificates chaining back to the expired certificate chain of trust that is present in these certificates. It would seem that the extension is performing the validation in a way that is atypical for Windows applications as this is the only instance we have of this occurring. We would like to work with Github towards another resolution that does not require modifying our local certificate stores.
https://code.visualstudio.com/insiders/ -->
We would like chain of trust verification to use the currently valid Issuing and Root CA certificates when available as opposed to choosing the first certificate (or oldest) available as it appears to be doing at present.

For me current version of Copilot started to ignore VSCode proxy settings.

I can't comment on previous versions but from the time we began using the Copilot extension that setting has had no effect. Overriding certificate verification isn't a long-term option for us given the ramifications; I would imagine that to be the case for many corporate users.

At least on v1.186.0 it is working


How to disable error log form geckordp?

Keep getting this error after restarted the firefox:
2022-06-03 11:09:24,550 [geckordp][ERROR] - wait_process_loaded(): waiting for process[5876] failed, wait 15 seconds:
process no longer exists (pid=5876)

At the moment there is no variable to set the log level (I will add this later).
Though you can set the log level to fatal, if you really would like to disable all errors:
from geckordp.logger import set_stdout_log_level, logging
set_stdout_log_level(logging.FATAL)

But how is the error reproduced exactly? It looks like the process is already terminated before it can wait for it.


docker 1.12 compilation failure

Hi guys,
It's my first time to compile docker based on a dev-image(some one build it), I have two questions in here:

it reports "I don't seem to be running in a Docker container.", but it is compiled in continaer.
there have compilation errors as below shows.

I guess it's not Docker's problem, it should be the problem about how I tryed to compile it. Appreciate if anyone can help me on this. Thanks.
$sudo docker run -it --privileged -v /home/xianwei.zw/docker:/mnt/docker -w /mnt/docker -t docker-dev-env:1.12 hack/make.sh binary
# WARNING! I don't seem to be running in a Docker container.
# The result of this command might be an incorrect build, and will not be
# officially supported.
#
# Try this instead: make all
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# GITCOMMIT = 6a0ce49-unsupported
# The version you are building is listed as unsupported because
# there are some files in the git repository that are in an uncommited state.
# Commit these changes, or add to .gitignore to remove the -unsupported from the version.
# Here is the current list:
M Makefile
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bundles/1.12.3 already exists. Removing.
---> Making bundle: binary (in bundles/1.12.3/binary)
Building: bundles/1.12.3/binary-client/docker-1.12.3
Created binary: bundles/1.12.3/binary-client/docker-1.12.3
Building: bundles/1.12.3/binary-daemon/dockerd-1.12.3
# _/mnt/docker/cmd/dockerd
cmd/dockerd/daemon.go:276: unknown "github.com/docker/docker/daemon/cluster".Config field 'NetworkSubnetsProvider' in struct literal
cmd/dockerd/daemon.go:277: unknown "github.com/docker/docker/daemon/cluster".Config field 'DefaultAdvertiseAddr' in struct literal
cmd/dockerd/daemon_unix.go:64: undefined: libcontainerd.WithOOMScore
cmd/dockerd/daemon_unix.go:64: cli.Config.OOMScoreAdjust undefined (type *"github.com/docker/docker/daemon".Config has no field or method OOMScoreAdjust)

I see you made some modifications to the source code (6a0ce49-unsupported); could those be related?
The easiest way to build is to use the makefile, which will set all the right options to build and run docker in a container, for example:
git checkout v1.12.3
Previous HEAD position was 6a0ce49... Merge pull request #28262 from mstanleyjones/more_metadata_fixes
HEAD is now at 6b644ec... Bump VERSION to v1.12.3

make BIND_DIR=. binary shell

The above builds docker in a container, but bind-mounts your local source in the container, so that you can make modifications to the source in your local editor (without having to make them inside the container).
After building, it opens a shell in the container, in which you can install the built binaries;
root@3562aca9dfa4:/go/src/github.com/docker/docker# make install
hack/make/.detect-daemon-osarch: line 11: docker: command not found
hack/make/.detect-daemon-osarch: line 11: docker: command not found
hack/make/.detect-daemon-osarch: line 11: docker: command not found
hack/make/.detect-daemon-osarch: line 11: docker: command not found
KEEPBUNDLE=1 hack/make.sh install-binary

---> Making bundle: install-binary (in bundles/1.12.3/install-binary)
Installing docker to /usr/local/bin/
Installing dockerd to /usr/local/bin/
Installing docker-proxy to /usr/local/bin/

and run the docker daemon:
root@3562aca9dfa4:/go/src/github.com/docker/docker# dockerd --debug
DEBU[0000] docker group found. gid: 999
DEBU[0000] Listener created for HTTP on unix (/var/run/docker.sock)
INFO[0000] libcontainerd: new containerd process, pid: 160
DEBU[0000] libcontainerd: containerd connection state change: TRANSIENT_FAILURE
DEBU[0000] containerd: read past events                  count=0
DEBU[0000] containerd: supervisor running                cpus=4 memory=1997 runtime=docker-runc runtimeArgs=[] stateDir=/var/run/docker/libcontainerd/containerd
DEBU[0000] containerd: grpc api on /var/run/docker/libcontainerd/docker-containerd.sock
...

Thanks so much. @thaJeztah, I found I mounted the wrong path for source code. It's fixed.
Because there don't have external network access in my env, so I have to use compiled-image for docker compilation instead of build by "make BIND_DIR=. binary shell".
Do you know how to install docker binary after generated it in my container?
The docker binary already generated by "sudo docker run -it --privileged -v /home/xianwei.zw/docker:/go/src/github.com/docker/docker -t docker-dev-env:1.12 hack/make.sh binary"
But I don't know how to install the binary to my host env, not container env.

The binaries are stored in the bundles directory. If you don't use BIND_DIR, the makefile will automatically use a bind-mount for the bundles directory;
docker inspect --format "{{ json .Mounts }}"  27237bc79e7b
[
  {
    "Source": "/Users/sebastiaan/Projects/docker/bundles",
    "Destination": "/go/src/github.com/docker/docker/bundles",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  },
  {
    "Name": "40094419af02a626957aff331e9bd2453ab257f5f197055314018afd15c6403b",
    "Source": "/var/lib/docker/volumes/40094419af02a626957aff331e9bd2453ab257f5f197055314018afd15c6403b/_data",
    "Destination": "/var/lib/docker",
    "Driver": "local",
    "Mode": "",
    "RW": true,
    "Propagation": ""
  }
]

So you can copy the binaries from there


Exllamav2 is an excellent quantization method that would allow to use big models in consumer (~24Gb GPUs) thanks to fractional quantization methods. Would this be in the cards?

@merrymercy could you give me a heads-up on how much work would this entail? Is it just a matter of updating the model runner module?

@meditans It should be easy. You can see existing quantization support

https://github.com/sgl-project/sglang/blob/08df63a6f8b9d27ae80cf705ab9496632c8a18c2/python/sglang/srt/managers/router/model_runner.py#L303-L325
Probably you need to implement a linear_method for Exllamav2


"Assertion failed!" crash on UNITY

I made a working noise vocoder and I exported it and loaded it into my project.
As soon as I open it I get this crash error
EDIT: I tried loading the json file from the package manager in a new and empty project and i got these errors

Hi @JimPapanick , thank you for reaching out here -- can you give me a little more information, which versions of RNBO and Unity are you using? Also, is this something new, have you been able to get other patch exports working in the past, or in this project?

This weird problem gets solved if you are using "<" or ">" comparinsons and your default value is lower than the @min or higher than the @max. Set your default value between the expected values and it is fixed. Why this happens to crash unity idk.

Hi Jim, thank you for this -- can you explain a little more, where are you doing this less than / greater than comparison? Are you talking about a [param]  object in RNBO? Can you give an example of an object that does give the crash and one that does not give the crash?

I think it's a param actually, on second look. The picture below would crash unity when exported.  I think it's because the parameter can't accept a default value lower than it determines. If I come across this again I will post in more details.

OK, thank you Jim, yes please let us know if it crashes again under the same conditions.


NTR: CENP-T-W-S-X  complex

refs
https://www.ncbi.nlm.nih.gov/pubmed/22304917 original Cell paper
https://www.ncbi.nlm.nih.gov/pubmed/22304909 opinion
follow ups:
https://www.ncbi.nlm.nih.gov/pubmed/24234442
https://www.ncbi.nlm.nih.gov/pubmed/24522885
Def:
A histone-variant containing protein complex which forms a centromere specific nucleosomal structure, involved in centromeric chromatin organization.
Can probably be improved:
Parent "chromatin assembly complex" but this is obsolete. I missed that- can't find the obsoletion on git hub either.....
What do we use instead? (no recommendations in old terms)

Parent "chromatin assembly complex" but this is obsolete. I missed that- can't find the obsoletion on git hub either.....

You didn't miss it - you "absolutely support[ed]" it ;)
#10098 & GO list thread starting with https://mailman.stanford.edu/pipermail/go-consortium/2013-January/019588.html

Well I had totally forgotten about this. I guess really the complex I am requesting is a type of nucleosome?

is_a 'nucleosome' or just 'protein complex'?
part_of 'chromosome, centromeric region'?
capable_of_part_of 'CENP-A containing chromatin organization' or just 'chromatin organization'?

For capable_of I'm not sure
http://rsob.royalsocietypublishing.org/content/4/2/130229
Reactome call it
CENP-A containing chromatin assembly
The different types of chromatin have a role in switching centromeric heterochromatin in between different functional states (replication competent and kinetochore assembly competent). Probably the nomenclature will need to be revised in the future....
I'm only requesting this term because there was some confusion about the different complexes that the human  Fanconia Anemia proteins were annotated to. This complex is referred to in the entry but not annotated
http://www.uniprot.org/uniprot/A8MT69
I said I would request it.

but in your suggested definition you say involved in 'centromeric chromatin organization'.

Yep I was being conservative...probably organization is better for now...

[Term]
+id: GO:0061838
+name: CENP-T-W-S-X complex
+namespace: cellular_component
+def: "A histone-variant containing protein complex which forms a centromere specific nucleosomal structure, involved in centromeric chromatin organization." [PMID:22304909, PMID:22304917]
+is_a: GO:0032991 ! macromolecular complex
+relationship: capable_of_part_of GO:0061641 ! CENP-A containing chromatin organization
+relationship: part_of GO:0000775 ! chromosome, centromeric region


Make PHP Version Dynamic

Use $DDEV_PHP_VERSION to update the correct version.
The New Solution/Problem/Issue/Bug:
instead of hardcoded php version number use $DDEV_PHP_VERSION variable to make this dynamic.
How this PR Solves The Problem:
that there is no fixed 7.4 in the files so  the solution is better managable if projects evolve.
Manual Testing Instructions:
ddev up  wait for the grpc / protobuf build to complete and check that the extensions are installed ddev exec php -m | grep -i 'grpc\|protobuf'

Thanks for the PR.
 If this is something you use a lot, consider creating a DDEV addon.
The Discord community is always happy to help if you need a hand. https://github.com/ddev/ddev-addon-template 😄

I'll pull this @wolffc but if you could please update the top-level readme (which is 404) it would be good too. But as @tyler36 says, we don't really use this any more.


First version of "Users" is ready

the page still needs a good proofreading
and a few illustrations
and more information on a couple of featues

For the proofreading, here are the typos I have noticed in the documentation :

l. 32 --> it should be "corner" and not "cornier"
l. 52 --> a "they" is missing in the phrase, I think it should be "that they have the right"
l. 64 --> "detailed" should have only one 'l' and "task" at the end of the sentence should not have any 's' as it is "a task"
l. 88 --> it should be "the main purpose" and not "they main purpose"
l. 95 --> it should be "member" and not "memer"
l. 97 --> "transferring" should be written with two consecutives 'r' and not juste one

I can make a few illustrations asap!

I think this branch is ready, Floriane or Hugo, do you want to squash and merge it?

Merging in three...two...one...


ignore: trigger validation on existing manifests

please ignore

All pass. 🆗 That said we're not splitting the output right, now so it's hard to tell which manifest is being tested. It's ok for now since almost all PRs edit one manifest at a time.


[BUG] Black text on black background, epub on dark theme

Describe the bug
Black on black when viewing epub with dark theme on
To Reproduce
Steps to reproduce the behavior:

Go to 'Settings'
Click on 'Appearance'
Change theme to 'Dark'
View epub

Expected behavior

white on black text when using a dark theme
option to override reader appearance settings

Screenshots

I don't know how visible this will be but sometimes flipping between pages I see a blink of white text then it goes black. Not sure if this helps with fixing the bug:

Additional context
I did a quick search of issues and didn't see a related one, let me know if this is related to another issue or report.

Hey 👋
Thanks for reporting this! Are you able to test that this bug presents in other epub files? Or is it just this one? My immediate feeling is that there is some asset/style in the epub that is overriding Stump's, which would explain why you are seeing that flash, as well.
If it does wind up being isolated to that (or a select few) epub files, there are a few ways to continue debugging:

If you're able to, send me the file and I can handle figure out where and why
Inspect the iframe and send me the selector for any given text element and any style definitions/overrides shown

The two screenshots are from separate files, seems to only affect a couple.
Here's the second one:
https://annas-archive.org/md5/274524bec378a5069f5e46ff2a146b55

This is exactly what I needed, thank you! I was able to reproduce and correct the issue locally with the epub file you linked, I'll be sure to put up a PR this afternoon after work with those changes 👍

The latest nightly has this fix, if you're able to try it out and let me know if it resolves the issue on your end

Works!


Rules for const safety and promotion

Based on my blog posts and lots of prior discussion with @oli-obk and @eddyb.  I am sure I forgot some of that discussion though, so please let me know what is wrong or missing.^^

I significantly expanded the discussion of promotion, also covering the concerns raised in https://github.com/rust-rfcs/const-eval/issues/2.

Note that while the promoted.md contains some TODOs, I think we don't have to wait merging this until the TODOs are figured out -- it's still strictly more informative than what we have now. ;)


⚠ Bofrost.es has degraded performance

In e067663, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1080 ms

Resolved: Bofrost.es performance has improved in 6265c14.


Support Cancellation

The Cancellation in BSP is inherited from LSP. See:
https://github.com/build-server-protocol/build-server-protocol/issues/524
Cancellation in LSP
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#cancelRequest
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#errorCodes
How LSP node client sending the cancel request
https://github.com/microsoft/vscode-languageserver-node/blob/f2ff7d55464a1f58f978cb6635bd8865f050553c/jsonrpc/src/common/connection.ts#L1398-L1412

@Sidhaarthsr BTW, just an ask. Are you interested in this issue?

Yes @jdneo I'm interested and it's part of this initiative. I can pick this up

Thank you :)


Issue deploying duplicate rules (npm run crm-sync:sf:duplicaterules)

Following the steps laid out in the readme file, we hit an error trying to deploy duplicate rules.  We attempted to manually configure the duplicate rules in Salesforce core, however we do not see the B2C Commerce: Standard PersonAccount rule in setup.  How do we access or enable the B2C Commerce:Standard PersonAccount rule?  Does Order Management need to be enabled to access the Commerce Cloud matching and duplicate rules?

Here is the error from the CLI command npm run crm-sync:sf:duplicaterules

We are deploying this to a sandbox, not a scratch org.

Solved: bypass the error by manually creating custom fields in order to create the duplicate rules for B2C.


[line] fix verbose names in time shift

closes https://github.com/apache/incubator-superset/issues/4750

@mistercrunch it looks like this broke the time shift color assignment (that you fixed here https://github.com/apache/incubator-superset/pull/4202), but it seemed like that broke the verbose names in time shift. Any thoughts on how to solve for both cases?


Let smart-contract lenders verify their own signature data

Also remove approveLoanOffering() and remove the signer field from the loan offering

Pull Request Test Coverage Report for Build 5072

20 of 20 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 5010:
0.0%

Covered Lines:
911

Relevant Lines:
911

💛  - Coveralls


Onboarding after in-app reset: Notifications are not activated

Avoid duplicates

[x] Bug is not mentioned in the FAQ
[x] Bug is not already reported in another issue

Technical details

Device name: iPhone 6s
iOS Version: iOS 14.4
App Version: 1.15.1

Describe the bug

Onboarding after In-App reset: Notifications are not activated.
Steps to reproduce the issue

install CWA
in-app reset
OS settings > Notifications > Corona-Warn > Allow Notifications: set slider to OFF
start CWA onboarding
On screen 5 "Receive warnings and ..." select "Next"
Observation: The iOS notification pop-up  to allow notifications is missing
complete onboarding
check: OS settings > Notifications > Corona-Warn > Allow Notifications: slider is OFF

Expected behaviour
Onboarding after In-App reset: Notifications should be activated when desired
Possible Fix

Additional context
This issue does not occur when re-installing CWA, only after in-app reset

Internal Tracking ID: EXPOSUREAPP-6000

@dsarkar I don't see a fix for this in version 2.0.3.

@Ein-Tim Indeed, was not fixed. Onboarding story has to be changed.

Corona-Warn-App Open Source Team

According to Apple documentation:
"The first time your app makes this authorization request, the system prompts the user to grant or deny the request and records the user’s response. Subsequent authorization requests don’t prompt the user."
In the onboarding after loading the app freshly, (for the very first time, or after having deleted cwa), this is regarded as "the first time". However, an in-app reset is not. So in that case the previous setting survives.
If the user had the notifications allowed, they stay allowed.
If the user had the notifications disabled, they stay disabled.

I don't find any mechanism to force this dialog after this first time.
However, we can programmatically find out the current status of notification settings, and especially the current authorisation status.
So the issue could be mitigated as follows:

during onboarding, we retrieve the current authorisation status.
if it is notDetermined, the user will get the dialog and all is fine.
if it is authorised, the user has agreed to notifications before, and all is fine. No harm if the dialog is not shown.
same for provisional or ephemeral
however, if it is denied, we can send the user into their settings, so they get a chance and reminder to think about the settings and change them.

This should be at the end of the Onboarding flow. So the Onboarding is finished, even when the user leaves the Settings with the Home button, and does not return directly to cwa.

I have just checked the linked Jira issue.
Jira Ticket is flagged as:
Resolution: Unresolved
Status: BLOCKED
Developer comment:

if the notification is shown or not is not under the control of the CWA. If the user has declined notification once, the OS does not ask for permissions again.
The preferred solution would be to show a different screen if notifications are disabled which informs the user how to enable notifications again in the OS settings. Moved the bug to a story as this needs to be planned incl. UX Design.

The Jira issue is stale for a year. I have re-assigned the issue and asked for an update on this topic.

will set to obsolete as the effect is only until  31.4.2023


Fix #10921

When the controller kind is specified as DaemonSet and useHostPort is set to true, there is no need to spin up a service of type NodePort or LoadBalancer, or at least you should be able to disable this option.

/cc @jackzampolin

@mgoodness Any news?

@ChiefAlexander @taharah Fix for issue #10921

Ok I have created an option to disable the service.

/test all

@ChiefAlexander How do I reopen this pull request?

You will need to open a brand new PR


gtk-sharp: fix build

Motivation for this change
ZHF: #122042
Hydra Failure: https://hydra.nixos.org/build/143298541/nixlog/1
cc @NixOS/nixos-release-managers
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 123603 at 8e319d3f run on aarch64-linux 1

2 packages built successfully:

gtk-sharp-3_0
notify-sharp

@GrahamcOfBorg build gtk-sharp


getFilename() -Error

SQLite::Database dbs("hello.db3", SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);
auto db_name = dbs.getFilename().c_str();
When I use the above code to create and get the database file name, the compiler prompts an error and cannot get the relevant value.
https://github.com/SRombauts/SQLiteCpp/blob/164a606004b53bfdbb102e04adce038f04030a29/include/SQLiteCpp/Database.h#L465

Error reading characters of string.

please provide the following information:

compiler name
compiler version
OS
build system: cmake, meson, etc.

Thank you for your information.
The compiler name and version are "Microsoft Visual Studio Community 2022 (64-bit) - Current Version 17.5.5".
OS-Microsoft Windows 10 Professional, Version-10.0.19045
Build System : MSBuild
I was building the project with Qt in Visual Studio(Using qt plugin).
The following is the code block
void (CANDeviceInit:: * ptr_data_signal_2)(const std::vector &receive_data, UINT length) = &CANDeviceInit::CANDataSignal;
void (CenterWidget:: * ptr_data_receive_2)(const std::vector &receive_data, UINT length) = &CenterWidget::ReceiveCANData;
connect(this->dev, ptr_data_signal_2, this, ptr_data_receive_2);
void CenterWidget::ReceiveCANData(const std::vector& receive_data, UINT length)
{
std::string database_name = "database";
std::string table_name = "table_name";
SaveToDatabase(database_name, table_name, receive_data, length);
}
void CenterWidget::SaveToDatabase(
const std::string database_name,
const std::string table_name,
const std::vector& receive_data,
UINT length)
try {
// Open a database file in create/write mode
SQLite::Database database((database_name + ".db3").c_str(), SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);  // Error reading characters string
LOG(INFO) << "SQLite database file '" << database.getFilename().c_str() << "' opened successfully\n";
// Execute SQL statements created by tables
const std::string kCreatTable = "CREATE TABLE IF NOT EXISTS "

table_name
"(Timestamp INTEGER PRIMARY KEY, Direction TEXT, ID TEXT, Length INTEGER, Data TEXT)";
database.exec(kCreatTable.data());
}
}

Please let me know what you think.
Best Regards
From: Jonathan Guzmán
Date: 2023-08-17 12:43
To: SRombauts/SQLiteCpp
CC: DuanZhaobing; Author
Subject: Re: [SRombauts/SQLiteCpp] getFilename() -Error (Issue #437)
please provide the following information:
compiler name
compiler version
OS
build system: cmake, meson, etc.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Hello,
I don't see anything wrong with how you use SQLiteCpp, only minor improvements that could be made to your code.
I can imagine that the issue is with the rest of the program; I would bet for garbage memory (eg if CenterWidget object is already destroyed when the function is called).
I copy pasted and slightly adapted your code to run in the example1/main.cpp, it's working as expected.
#include <vector>

void SaveToDatabase(
    const std::string database_name,
    const std::string table_name,
    const std::vector<uint8_t>& receive_data,
    std::uint32_t length)
{
    try
    {
        // Open a database file in create/write mode
        SQLite::Database database((database_name + ".db3").c_str(), SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);  // Error reading characters string
        std::cout << "SQLite database file '" << database.getFilename().c_str() << "' opened successfully\n";
    }
    catch (std::exception& e)
    {
        std::cout << "SQLite exception: " << e.what() << std::endl;
    }
}

void ReceiveCANData(const std::vector<uint8_t>& receive_data, uint32_t length)
{
    std::string database_name("C:\\UnitySrc\\SQLiteCpp\\examples\\example1\\example");
    std::string table_name = "table_name";
    SaveToDatabase(database_name, table_name, receive_data, length);
}

int main()
{
    const std::vector<uint8_t> receive_data = { 0x01, 0x02, 0x03, 0x04 };
    ReceiveCANData(receive_data, receive_data.size());

SQLite database file 'C:\UnitySrc\SQLiteCpp\examples\example1\example.db3' opened successfully

Hello sir.
I used the same code in  Visual Studio to create a new C++  Console App and a Qt Empty App, but with different results.
In the C++  Console App, everything works. But in the Qt Empty App, the exception unable to open database file is thrown.
I don't have enough experience to look further into the cause. And I don't know if it's a problem with my usage or something else.
Sincerely look forward to your reply.
//  In the Qt Empty App, no exception is thrown(when i use .data() or .c_str() function), but the database file name cannot be obtained(Unable to read memory).
SQLite::Database  new_db(s.data(), SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);

#define SQLITECPP_COMPILE_DLL
#include <string>
#include <iostream>
#include <SQLiteCpp/SQLiteCpp.h>
#include <SQLiteCpp/VariadicBind.h>
int main()
{
	std::string s = "d.db3";
	try {
        // In the C++  Console App, everything works. But in the Qt Empty App, the exception unable to open database file is thrown.
	SQLite::Database  new_db(s, SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);

	// SQLite::Database  new_db(s.data(), SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);  //  In the Qt Empty App, no exception is thrown, but the database file name cannot be obtained(Unable to read memory).
	}
	catch (std::exception& e) {
		std::cout << "SQLite exception: " << e.what() << std::endl;
		return EXIT_FAILURE; // unexpected error : exit the example program
	}
	return 0;
}

can you upload a sample repo with the code that throws the error?
as for the error seems that there is a use after free somewhere, probably related to the string used to initialize the database

Hello Sir.
The attachment is a simple sample code.Please check.
SQLiteCpp_getFilename-test.zip

seems that it could be caused for the following reasons:

somewhere in your code the string is modified and you try to use the c_str after it, if you have a  std::string  is preferred to use it directly
the string is not utf8 encoded, the most easy solution in c++17 would be to use std::filesystem  the constructor should convert it to utf8 automatically for you

for the example repo is recommended that you also show the example of your QT app, or at least a minimal failing example that we can debug

Sorry to have kept you waiting, Sir.
The project files of the Qt app have been uploaded to the git repository.
https://github.com/DuanZhaobing/SQLiteCpp_getFilename-test/tree/main/SQLiteCppTest_Qt


Allow relative path for JS loading

When I split my config into tasks folder, using a js config file, the following error is shown:
Loading "Gruntfile.js" tasks...ERROR
>> Error: Cannot find module 'tasks/postcss.js'

However, this does not seem to affect yaml configs.
After looking into this using node --inspect, the culprit seems to be this:
    // JS / JSON / CoffeeScript
    if (ext.match(/json|js|coffee|ls/)) {
        return require(file);
    }

Obviously, "require" without "./" makes node mistake the file name as a module name.
The correct syntax should be require(`./${file}`) if the path is relative.
Fixing this should be easy, I will provide a patch soon.

Thanks, will publish new version a bit later today.

will publish new version a bit later today.

@SolomoN-ua Just a friendly reminder :smiley:

will publish new version a bit later today.

@SolomoN-ua Just a friendly reminder 😃

omg.
Sorry, crazy week at work, it is done now. Thank you for the reminder.


Modifying color wheel to be a single line

Is there any way to modify the color wheel to single line?

There is no current way for ChromeColorPicker to do this and it is not the intention of the project to be anything but a circular color picker.


Add pwndbg

This gets us some coverage for our types-gdb stubs in typeshed. The project is currently working towards getting type-checking errors down to zero, and may be submitting more typeshed PRs for our gdb stubs in the future: https://github.com/pwndbg/pwndbg/issues/1475.
There are lots of other dependencies installed if you run pip install dev-requirements.txt in a virtual environment inside the pwndbg repo, but types-gdb seems to be the only one that's relevant to type-checking.

Thanks! The quality of type hints in this repo is very poor, though. E.g. there's a bunch of error: Name "List" is not defined  [name-defined]

Thanks! The quality of type hints in this repo is very poor, though. E.g. there's a bunch of error: Name "List" is not defined [name-defined]

We're working on it! We started recently from a completely untyped codebase that does some things that are hard to type check without some refactoring.


Fixing squid: common-java:DuplicatedBlocks   Source files should not have any duplicated blocks

This pull request is focused on resolving occurrences of Sonar rule
squid: common-java:DuplicatedBlocks - “ Source files should not have any duplicated blocks”.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:common-java:DuplicatedBlocks
Please let me know if you have any questions.
Fevzi Ozgul

Hi dounine,
Can you check this PR also? There is no conflict and waiting to be merged.

This request seems to be reasonable, but the use of HttpClient anti serialization out of the corresponding data is not on, so I can not accept this PR.


Update blogs.html

Add Maps for HTML Community Group blog

Thank You for this, @prushforth ! I added this to the source file on the master branch, as the dist directory is regenerated everytime we do "npm run build" : https://github.com/opengeospatial/developer-website/commit/55534352078b15005e8c0cd2e93a0277a8dff350