Category: Microsoft
Category Archives: Microsoft
What’s new across Azure Governance services, Microsoft Build 2024
Over the last six months there have been exciting new releases across Governance services to help you continue to manage your Azure environment with increased speed and control. We are spotlighting the public preview and general availability of highly anticipated policy features, recently released Azure Resource Graph Copilot capabilities, and some sneak peaks into what is coming soon. Stay tuned to explore what AI means for your at-scale cloud management scenarios, and make sure to check us out on X for other updates, @AzureGovernance.
Azure Resource Graph
Azure Resource Graph Copilot Capabilities
We are thrilled with the initial response as well as major enhancements to Azure Resource Graph (ARG) capabilities within the Azure Copilot. Azure CoPilot allows you to understand your resources and environment with ease, through transforming natural language prompts into ARG queries. This reduces the amount of expertise you need to have to run queries and shortens the time to discover solutions for key environmental questions. As we continue to drive enhancements to this capability, our goal is to let our customers interact with their cloud environment in the same language that they use for day-to-day work.
Try it out with some queries like:
“Show me all my VMs that have a public IP address”
“Show me all my Linux VMs along with their creation date”
Learn more about ARG Copilot capabilities here: Get resource information using Microsoft Copilot for Azure (preview) | Microsoft Learn
Generally Available: Azure Resource Graph Power BI Data Connector
A highly anticipated release that we are pleased to announce is Generally available is the Azure Resource Graph Power BI Connector, a tool that allows Azure users to access deeper insights into their Azure resources. This powerful integration leverages the strong querying capabilities of Azure Resource Graph with the interactive visualization features of Power BI, enabling users to easily explore, analyze, and visualize their inventory of Azure resources. Refer here for sample queries that you can use with the new Azure Resource Graph Power BI connector and create visualizations with.
To learn more about the Azure Resource Graph Power BI Data Connector and how it can transform your Azure experience, review our official documentation and check out our brand new Youtube tutorial that offers step-by-step guidance on how to use the Azure Resource Graph Power BI Data Connector.
Query VMSS Power State Through ARG
Now you can query virtual machine details in the Virtual Machine Scale Set Uniform orchestration mode categorized according to their power state. ARG table “ComputeResources” contains the model view and powerState in the instance view properties for the virtual machines part of Virtual Machine Scale Set Uniform mode.
ComputeResources
| where type =~ ‘microsoft.compute/virtualmachinescalesets/virtualmachines’
| extend powerState = properties.extended.instanceView.powerState.code
| project name, powerState, id
Refer here for sample queries that you can use with the new Azure Resource Graph ComputeResources table.
Coming Soon: ARG enhanced support for GET/LIST calls
ARG is introducing a new feature to support existing Azure control plane GET and List API calls providing significantly higher throttling quota (up to 10X) for large cloud native customer workloads running in Azure. The goal is to address READ throttling issues that could lead to issues like performance degradation, failed requests, and increased latency impacting critical cloud operations.
Customers can use this capability to get an improved performance for Azure GET/LIST APIs, while reducing throttling for these calls across key resource types like Compute, network etc. The new throttling limits offered by ARG will be aligned to the new Azure Resource Manager throttling limits applied per region and hence offer a more scalable and performant backend for your GET/LIST calls. Stay tuned to learn more about this update!
If you have faced throttling issues in your environment or want to hear from us, you can reach out to us through the Twitter handle @AzureGovernance or fill out this form.
Azure Policy
Generally available: Selectors and Overrides for Gradual Policy Rollout
Selectors and overrides are now generally available, making it easier than ever to safely roll out your policy assignments. The resourceSelectors property on policy assignment enables targeting resources by resource location or resource type to target subset of resources through the rollout stages. In addition, the overrides property allows you to change the effect of a policy definition without modifying the underlying policy definition or use a parameterized effect in the policy definition to first roll out using the audit or auditIfNotExists effect.
Check out our how-to guide to learn more on how to leverage these properties and others to safe deploy policy assignments: Safe deployment of Azure Policy assignments – Azure Policy | Microsoft Learn
Public preview, SSH Posture control through Machine Configuration
We are excited to announce additional built-in capabilities for Linux management scenarios through Azure policy and Machine Configuration. Through new built-in policies, you can manage your SSH configuration settings declaratively at-scale.
SSH Posture Control enables you to use the familiar workflows of Azure Policy and Machine Configuration to:
Ensure compliance with standards in your industry or organization
Reduce attack surface of remote management features
Ensure consistent setup across your fleet for security and productivity
SSH Posture Control also provides detailed Reasons describing how compliance or non-compliance was determined. These Reasons help you to document compliance for auditors with confidence and evidence. They also enable you to take action when non-compliance is observed.
For more information, see https://aka.ms/SshPostureControl
Coming Soon: Built-in Policy Versioning and Resource Capabilities
Stay tuned to learn about upcoming releases from the governance team including built-in Policy versioning, a platform shift that will allow you to manage version changes and upgrade built-in policies on-demand. To learn more and give it a try fill out the below form to get onboard to the private preview. Also coming up is the release of Resource Capabilities, which allows you to use a single Azure Policy definition to govern a common scenario across multiple resource types.
Onboard to the private previews through the following link: https://aka.ms/governance_pp
Change Analysis powered by Azure Resource Graph
Public Preview: New Change Analysis Portal Experience
Viewing changes to your Azure resources just became easier! With the new Change Analysis experience powered by Azure Resource Graph, you can now view all your resource changes across all your tenants and subscriptions in the Azure Portal. Resources are at the heart of this new experience. It also gives you an onboarding-free experience, tenant-wide querying rather than selecting subscriptions, more scalable and extensive filtering capabilities, change actor information and improved accuracy. To learn more visit: https://learn.microsoft.com/en-us/azure/governance/resource-graph/changes/view-resource-changes
To stay on top of all our latest releases and updates or if you have any questions, be sure to give us a follow on X at @AzureGovernance.
Microsoft Tech Community – Latest Blogs –Read More
What’s new in Microsoft Intune May 2024
Innovation is in the air this spring (or fall for our friends in the Southern Hemisphere). I’m pleased to highlight some new capabilities we’re bringing to Intune this month. We’re adding features that increase secure productivity. Read on to learn what’s new and notable this month, then put these features to work for your organization.
Getting down to business
We have three major enhancements to highlight this month that help users get down to business:
Platform single sign-on (SSO) has arrived for macOS device enrollment: This capability helps users with macOS devices get to work faster, with a single sign in and password for their device and apps. Additionally, it enables users to automatically sign in to their Microsoft 365 productivity apps. To learn more, see this article about the rest of the Mac management news.
Windows Autopilot device preparation: Built from the ground-up with an improved architecture, this new Windows Autopilot option offers faster and more configurable self-deployment capabilities. The original, existing Windows Autopilot architecture is still in place and its existing capabilities are all still available to admins. Read more about the new and improved Windows Autopilot.
Enhanced frontline worker (FLW) device management: New capabilities make FLW devices easier to use and manage. One of the biggest improvements is updates to the Managed Home Screen. Get the whole story in this blog post.
More secure and more efficient
We’re also introducing capabilities to Intune focused on making it easier to improve security and efficiency.
New security baseline
First is an update to the Microsoft Defender for Endpoint security baseline. Security baselines are one-click collections of policies that can be applied to devices (and device groups) in Intune. This latest update is a super-efficient way to apply configurations recommended by the Microsoft Defender for Endpoint team. It’s also based on the Windows unified settings platform, which brings some additional benefits like:
Quicker turnaround for updates.
Improved reporting, including per-setting status reports.
Assignment filter support.
Improved UI.
Consistent names across Intune.
We recommend updating baselines to the latest version by selecting the check box for test baseline when they’re released:
BitLocker recovery key
The second addition is to the BitLocker recovery key workflow. Traditionally, if a user gets locked out of their BitLocker-encrypted device, they call the Help Desk. With the capability we’re rolling out, end users can access their BitLocker recovery key directly from the Company Portal web site, providing a more intuitive and streamlined path to recovery, reducing the burden on support teams.
Admins can disable this feature for users without admin rights and access to logs. For more information, see the documentation on Get recovery key for Windows.
Corporate identifiers
The third capability is an update to the Windows corporate identifiers feature. This can be used as part of any Windows deployment, including the new Windows Autopilot device preparation process.
This change is meant to help you and security teams ensure that only devices that are explicitly authorized can be marked as corporate-owned devices. Organizations can upload a comma-separated, values-formatted (.csv) list of devices, specifying manufacturer, model, and serial number (for Windows devices only). Details will be available in the documentation when this feature is released as it’s rolling out apart from the May 2024 update.
Enrollment time grouping
You know that device groups are powerful tools for managing lots of devices. Before the introduction of this new capability, enrollment time grouping, new Windows devices would get policies only once the device’s properties are discovered and group memberships are evaluated. The result would have unpredictable wait times before devices were ready to use. The enrollment time grouping feature accelerates the process of group assignment and the time of productivity for end users by skipping the inventory discovery and dynamic membership evaluation phases. Enrollment time grouping is currently available as part of Windows Autopilot device preparation, which is being released at the end of May 2024 and will be expanded to other enrollment methods and platforms in the months ahead. To learn more, read this article on enrollment time grouping and Windows Autopilot device preparation.
Stay up to date! Bookmark the Microsoft Intune Blog and follow us on LinkedIn or @MSIntune on X to continue the conversation.
Microsoft Tech Community – Latest Blogs –Read More
Confused about legacy renewal / Solutions Partner benefits
Hi. According to Partner Center, our Legacy Silver Membership ran from 8/9/22 to 8/9/23. Our Solutions Partner designation is running from 8/21/23 to 8/20/24. On the Legacy Silver/Gold page, it says “Not Entrolled” and “No benefits assigned yet since you do not have active Legacy Silver or Gold Program membership yet.”
However – I am being told by partner support (who relies wayyyyy too heavily on AI to write their emails, btw) that as we have active legacy silver benefits, we cannot get our Solutions Partner benefits until this fall. On the Solutions Partner Designation Membership Offers, it says my renewal window is August 20 2024 – September 18 2024.
Any ideas? This is extremely frustrating and support doesn’t seem to understand what is going on – they have been doing webtrace / app troubleshooting.
TIA.
Hi. According to Partner Center, our Legacy Silver Membership ran from 8/9/22 to 8/9/23. Our Solutions Partner designation is running from 8/21/23 to 8/20/24. On the Legacy Silver/Gold page, it says “Not Entrolled” and “No benefits assigned yet since you do not have active Legacy Silver or Gold Program membership yet.” However – I am being told by partner support (who relies wayyyyy too heavily on AI to write their emails, btw) that as we have active legacy silver benefits, we cannot get our Solutions Partner benefits until this fall. On the Solutions Partner Designation Membership Offers, it says my renewal window is August 20 2024 – September 18 2024. Any ideas? This is extremely frustrating and support doesn’t seem to understand what is going on – they have been doing webtrace / app troubleshooting.TIA. Read More
Engage with customers about securing Copilot for Microsoft 365 with Business Premium and Standard
Messaging about securing Copilot for Microsoft 365 with Microsoft 365 Business Premium and Business Standard (Business Basic coming soon) has been developed to support conversations around securing for AI in the small and medium-sized business (SMB) market.
Resources
Check out the Securing Copilot for Microsoft 365 in SMB deck to learn more
Visit the Business Premium Partner Playbook page for additional resources
—
Advanced Support for Partners (ASfP) and Premier Support for Partners (PSfP) are paid partner offerings at Microsoft that provide unmatched value through a wide range of Partner benefits including account management, technical cloud enablement consultations, and an elevated technical support experience across the Microsoft Cloud (Azure, Microsoft 365, Dynamics 365, Power Platform).
Partners in ASfP have higher Microsoft AI Cloud Partner Program Capability Scores, attain more Solutions Partner designations, and see uplifts across Azure, M365, and D365. View the data and learn more on the new ASfP Impact slide below.
Please review these resources to learn more and consider booking a meeting to speak directly with our teams for a better understanding of the value-added benefits of ASfP and PSfP.
Book a meeting with an ASfP Evangelist
Book a meeting with a PSfP Specialist
Visit the ASfP Website
Visit the PSfP Website
Download the ASfP Fact Sheet
View the ASfP Impact Slide
Stop by the ASfP Partner Community
Messaging about securing Copilot for Microsoft 365 with Microsoft 365 Business Premium and Business Standard (Business Basic coming soon) has been developed to support conversations around securing for AI in the small and medium-sized business (SMB) market.
Resources
Check out the Securing Copilot for Microsoft 365 in SMB deck to learn more
Visit the Business Premium Partner Playbook page for additional resources
—
Advanced Support for Partners (ASfP) and Premier Support for Partners (PSfP) are paid partner offerings at Microsoft that provide unmatched value through a wide range of Partner benefits including account management, technical cloud enablement consultations, and an elevated technical support experience across the Microsoft Cloud (Azure, Microsoft 365, Dynamics 365, Power Platform).
Partners in ASfP have higher Microsoft AI Cloud Partner Program Capability Scores, attain more Solutions Partner designations, and see uplifts across Azure, M365, and D365. View the data and learn more on the new ASfP Impact slide below.
Please review these resources to learn more and consider booking a meeting to speak directly with our teams for a better understanding of the value-added benefits of ASfP and PSfP.
Book a meeting with an ASfP Evangelist
Book a meeting with a PSfP Specialist
Visit the ASfP Website
Visit the PSfP Website
Download the ASfP Fact Sheet
View the ASfP Impact Slide
Stop by the ASfP Partner Community Read More
Excel Having Trouble Calculating Basic Formulas
Hello all, I am new to this community, but hopeful I can find a solution to an issue.
I am in real estate development and I have a financial model that has effectively quit calculating many formulas, including basic “A1 * B1” and “= A1” formulas. I have my formulas set to automatically calculate; however, sometimes this issue can be resolved by selecting “Calculate Sheet” while most other times this does not work either.
Does Microsoft provide experts that can walk through a spreadsheet to help? I have been troubleshooting this online and with multiple others who have vast Excel knowledge, so looking for a way to connect with an expert to help. Thanks for your time in sharing your experience.
Hello all, I am new to this community, but hopeful I can find a solution to an issue. I am in real estate development and I have a financial model that has effectively quit calculating many formulas, including basic “A1 * B1” and “= A1” formulas. I have my formulas set to automatically calculate; however, sometimes this issue can be resolved by selecting “Calculate Sheet” while most other times this does not work either. Does Microsoft provide experts that can walk through a spreadsheet to help? I have been troubleshooting this online and with multiple others who have vast Excel knowledge, so looking for a way to connect with an expert to help. Thanks for your time in sharing your experience. Read More
PS script for uploading files to Sharepoint Online
Hello friends…
This process of uploading files from some local storage to Sharepoint Online seems to be the simplest to be carried out via Powershell Script… However, a command/routine in which the password is posted clearly, in plain text, is not ” should be” permanent.
Do you have any alternative to this?
#Copia Arquivos para o Sharepoint Site
$FILESP = (Get-ChildItem .$EXECFOLDER -File | Sort-Object LastWriteTime -Descending| Select-Object -First 3).Name
foreach ($FILESP in $FILESP) {
Write-Host “Arquivo ………. ” -NoNewline
Write-Host “” $FILESP -foregroundcolor Yellow -NoNewline
Write-Host ” foi carregado/enviado com êxito!!!”
Write-Host “”
$WebUrl = “https://organizacao.sharepoint.com/sites/name-site”
$LibraryName =”library”
$SourceFile=”.$EXECFOLDER$FILESP”
$AdminName =”my-name@domain”
$AdminPassword = “my password”
#$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminName,(ConvertTo-SecureString $AdminPassword -AsPlainText -Force))
$Credential = new-object System.Management.Automation.PSCredential $AdminName, $AdminPassword
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)
$Context.Credentials = $Credentials
$Library = $Context.Web.Lists.GetByTitle($LibraryName)
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFile)).OpenRead()
$SourceFileName = Split-path $SourceFile -leaf
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $SourceFileName
$FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)
$Context.Load($FileUploaded)
$Context.ExecuteQuery()
$FileStream.Close()
#Write-Host “”
}
Contextualizing: A routine/script executes locally, generates some files that must be placed on a website, in a library, on Sharepoint Online
Well, I believe this can shed some light
Hello friends… This process of uploading files from some local storage to Sharepoint Online seems to be the simplest to be carried out via Powershell Script… However, a command/routine in which the password is posted clearly, in plain text, is not ” should be” permanent. Do you have any alternative to this? #Copia Arquivos para o Sharepoint Site
$FILESP = (Get-ChildItem .$EXECFOLDER -File | Sort-Object LastWriteTime -Descending| Select-Object -First 3).Name
foreach ($FILESP in $FILESP) {
Write-Host “Arquivo ………. ” -NoNewline
Write-Host “” $FILESP -foregroundcolor Yellow -NoNewline
Write-Host ” foi carregado/enviado com êxito!!!”
Write-Host “”
$WebUrl = “https://organizacao.sharepoint.com/sites/name-site”
$LibraryName =”library”
$SourceFile=”.$EXECFOLDER$FILESP”
$AdminName =”my-name@domain”
$AdminPassword = “my password”
#$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminName,(ConvertTo-SecureString $AdminPassword -AsPlainText -Force))
$Credential = new-object System.Management.Automation.PSCredential $AdminName, $AdminPassword
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)
$Context.Credentials = $Credentials
$Library = $Context.Web.Lists.GetByTitle($LibraryName)
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFile)).OpenRead()
$SourceFileName = Split-path $SourceFile -leaf
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $SourceFileName
$FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)
$Context.Load($FileUploaded)
$Context.ExecuteQuery()
$FileStream.Close()
#Write-Host “”
} Contextualizing: A routine/script executes locally, generates some files that must be placed on a website, in a library, on Sharepoint Online Well, I believe this can shed some light Read More
Using Excel to track and calculate Swimming times
I am a swim coach and I am trying to create a table in which i can record times for swimmer for each length of the pool that they swim. I then want to subtract the times between two lengths to get a split time for each lane. I need to have mm:ss.00. I have figured this out for anything less than 1 minute. Once I need to enter minutes my formulas fail. I am using a time format of mm:ss.000. If I enter 0:32.7 in one cell and 0:16.20 in a second cell then subtract them I get the correct answer of 16.5 in a new cell that is formated as a number.
I am a swim coach and I am trying to create a table in which i can record times for swimmer for each length of the pool that they swim. I then want to subtract the times between two lengths to get a split time for each lane. I need to have mm:ss.00. I have figured this out for anything less than 1 minute. Once I need to enter minutes my formulas fail. I am using a time format of mm:ss.000. If I enter 0:32.7 in one cell and 0:16.20 in a second cell then subtract them I get the correct answer of 16.5 in a new cell that is formated as a number. Read More
Unlocking the power of NPU on Surface: Our “Hello World” journey
Imagine transforming your everyday device into an AI powerhouse, capable of handling complex tasks with ease and efficiency. With the introduction of Surface’s new line of products, powered by cutting-edge Neural Processing Units (NPUs), this vision is now a reality. These specialized hardware components are set to revolutionize AI performance, bringing unprecedented speed, efficiency, and privacy to your fingertips.
What’s an NPU?
The NPU architecture is optimized for matrix operations, executing neural network layers quickly and accelerating inference with remarkable efficiency. By offloading AI workloads from the CPU or GPU, the NPU reduces power consumption, enabling better performance, longer-lasting battery life, and improved thermal management on the device. The NPU runs models locally on the device, reducing latency for real-time applications and giving developers more control over data privacy – the data never has to leave the device.
To learn more, see these Qualcomm resources:
What is an NPU? And why is it key to unlocking on-device generative AI? | Qualcomm
Whitepaper describing the need for an NPU and heterogeneous computing
Our journey begins
As data scientists on the Surface development team, we couldn’t wait to get our hands on our new PCs and leverage the NPU for our own models and applications. But before we jump into the deep end, we first need to understand the basics – how to connect to the NPU and run models on it. In this article, we’ll share our story about how we ran a “Hello World” model on the NPU, so you can do it too. We’ll walk you through the steps we took to deploy a classic Convolutional Neural Network (CNN) model, Handwritten Digit Classification, onto an NPU.
Building the model
We started with the creation of a “Hello World” neural network model using the publicly available MNIST dataset. The MNIST dataset contains images of handwritten digits (MNIST — Torchvision main documentation), and there are numerous blog posts online that provide guidance on how to train a classification model. (Here’s the one we used: MNIST Handwritten Digit Recognition in PyTorch – Nextjournal.) Note that you can swap this with any other trained model if you prefer.
Converting to ONNX
Since PyTorch models cannot directly run on the NPU, we converted our model to ONNX format using the PyTorch function `torch.onnx.export`. ONNX is a file format that allows models to be run on various hardware platforms and runtime environments. You can find a detailed tutorial on converting models to ONNX here: Exporting a Model from PyTorch to ONNX. If you use another framework, like TensorFlow, you will need to follow a similar conversion process.
TIP: We found that the NPU on Surface will not take a dynamic axis. Therefore, when you export it to ONNX format, you need to fix all the input dimensions including batch size. Here is a code snip we used to convert our Pytorch model to ONNX format.
dummy_input = torch.randn(1, 1, 28, 28) # dummy input has the same dimension with actual MNIST data. batch size*C*H*W = 1*1*28*28
torch.onnx.export(model, # model being run
dummy_input, # model input (or a tuple for multiple inputs)
“model.onnx”, # where to save the model (can be a file or file-like object)
export_params=True, # store the trained parameter weights inside the model file
opset_version=11, # the ONNX version to export the model to
do_constant_folding=True, # whether to execute constant folding for optimization
input_names = [‘input’], # the model’s input names
output_names = [‘output’] # the model’s output names
)
Configuring the development environment for NPU deployment
After converting the model to ONNX, we set up the development environment for running the model on the NPU. We followed the ONNX Runtime documentation for the QNN Execution Provider.
TIPS:
Software versions: Quantization must be done using the x64 version of Python. We recommend doing this in a virtual environment. To run the model, use Python(ARM) 3.11.x and NumPy 1.25.2. Before installing NumPy, install the Microsoft Visual C++ Build Tools and select the correct components.
Device-specific codes: When starting an ONNX Runtime session, specify the Hexagon Tensor Processor (HTP) architecture value. For the Qualcomm® Hexagon™ NPU on Copilot+ PCs, Surface Pro and Surface Laptop, the code is 73. This code is not publicly mapped, so assistance from the manufacturer might be necessary.
Library files: Ensure that shared library files (.so) are copied into the same project folder, not just the system directory.
Quantizing the model
Next, we quantized the model, converting the 32-bit floating point model to an 8-bit integer model. Quantization balances the trade-offs between model accuracy and computational efficiency. There are two primary types of quantization frameworks: dynamic and static.
The Qualcomm Hexagon NPU on Copilot+ PCs, Surface Pro and Surface Laptop, supports static quantization, which means both the weights and activations are quantized before deployment.
We followed the QNN documentation for pre-processing and quantization: Quantize ONNX Models. Using a static quantization method, we created calibration data with representative data samples to determine optimal quantization parameters. We used the default parameters in the documentation example: uint16 for activations and uint8 for weights. Now, we have a quantized ONNX model ready to run on the NPU!
TIP: Supported ONNX operators. At the time of this blog post, not all operators can be quantized. To fully utilize NPU acceleration, ensure all layers are compatible with QNN. Check the supported operator set here: Supported ONNX operators.
Running the model
To run our model on the NPU, we started an ONNX Runtime inference. Different parameters can be configured to fit your particular use case: Configuration Options.
session = onnxruntime.InferenceSession(“model.qdq.onnx”, # path to our model
sess_options=options,
providers=[“QNNExecutionProvider”],
provider_options=[{“backend_path”: “QnnHtp.dll”}]) #Provide path to Htp dll in QNN SDK
We created a simple Flask app to give our model a user-friendly interface. Each time we ran our model, we observed the resource usage of our NPU in Task Manager, confirming that the NPU was indeed being utilized!
Conclusion
Our journey to run a “Hello World” model on the NPU was not without its share of challenges. There were many learnings along the way, most notably the agency we have in the quantization step to balance accuracy and efficiency. We believe this will be one of the most important considerations when we develop future applications.
Our other major learning is that certain tasks – like large neural network models, or reasoning over audio, vision, or language datatypes – are best suited for the NPU, whereas other tasks could be better suited for the CPU or GPU. The same way we experiment with different models during development, in future projects we plan to experiment with different implementation methods to determine which one is most performant, in terms of inference time and power consumption.
This exploration has only added fuel to our fire as we consider where we can take this next. We believe we can take advantage of the NPU’s unique power to build even greater Surface devices and experiences. (And we can’t wait to see what you do too!)
This space is growing fast, thanks to groups like the Applied Sciences Group at Microsoft, Qualcomm, and ONNX. With many libraries being open source, we anticipate these assets will only get better with time. Together, we can unlock the NPU’s limitless potential. How will you use it?
Learn more
What is an NPU? And why is it key to unlocking on-device generative AI? | Qualcomm
Whitepaper describing the need for an NPU and heterogeneous computing
MNIST — Torchvision main documentation
MNIST Handwritten Digit Recognition in PyTorch – Nextjournal
Quantize ONNX models | onnxruntime
Microsoft Tech Community – Latest Blogs –Read More
Skilling snack: Windows security for developers
Security is a team sport, and as a developer, you’re a critical part of the Windows Security team. After all, nobody will want to use your apps or websites if they think they might catch a virus or lose their personal information. Fortunately, Windows has a treasure trove of valuable tricks and tools to help you safeguard your code and protect your users from the worst threats the internet has to offer. Take a walk on the safe side with this week’s skilling resources, designed to help you stay three steps ahead in the race against malware.
Time to learn: 50 minutes
READ
Support for passkeys in Windows
Looking for a more convenient alternative to traditional sign-ins? Learn how passkeys can help to manage your website access securely, without having to remember a litany of passwords.
(7 mins)
Authentication + PIN + Windows Hello
READ
Advancing key protection in Windows using VBS
Developers can use the Cryptography API: Next Generation (CNG) framework to help secure Windows keys with virtualization-based security (VBS). Read all about creating, importing, and protecting your keys.
(5 mins)
Local Security Authority + NCrypt + Ephemeral keys + Per-boot keys
READ
Personal Data Encryption (PDE)
When you want to give your business’s files an extra level of security, Personal Data Encryption has you covered. Find out more here.
(5 mins)
Windows Hello for Business + Windows 11 + Decryption keys
READ
Meet the enclaveapi.h header and learn how you can use it to create a secure region of code within your applications.
(1 min)
Secure Enclaves + Coding + System Services + Programming
READ
A device protected by a Trusted Platform Module (TPM) is a device that is armed against malicious boot attacks. Get started protecting your own boot integrity.
(8 mins)
Azure + Measured Boot + Trusted Boot + Keys
READ
Announcing Zero Trust DNS Private Preview
Want to build your network around a domain name rather than an IP address? Find out how, and why this is a stronger choice for network security.
(4 mins)
Zero Trust + Windows DNS + Windows Filtering Platform
READ
Hop onto GitHub to browse through an arsenal of developer tools and documentation designed to get the most out of your security strategy.
(2 mins)
Win32 + GitHub + AppContainers + VisualStudio
READ
Proper app packaging should allow you to retain your app’s full functionality without sacrificing security. This is why Windows created MSIX. Learn everything you need to know about how this innovative app package format can provide you with seamless installations, guide in the building of secure least-privilege apps, and give your users visibility and control over their most sensitive resources.
(3 mins)
MSIX + Windows Insider Program + WinGet + Win32App Isolation
READ
Ready to take a deep dive into Microsoft’s fully managed, end-to-end signing service? Get started with this primer on Trusted Signing.
(1 min)
Azure + Certificate signing + Certificate lifecycle management
READ
How do you spot the difference between trustworthy and untrustworthy code? Read about how Microsoft’s Smart App Control can help keep you safe.
(3 mins)
Certificates + Trusted Root Program + Malware
WATCH
Prioritize your most critical security findings with Microsoft Defender for DevOps
In this live demo session recording from Microsoft Build 2023, you’ll see how DevOps can use findings from Microsoft Defender for Cloud to identify and address your biggest security concerns.
(11 mins)
Cloud + Defender + Azure
BOOKMARK
It’s not too late to benefit from all the learning from this year’s Build sessions. Check out on-demand recordings of the latest developments at Build where many of our leaders spoke about the importance of security.
(time varies)
Copilot + Generative AI + Cloud + Azure + Docker + NVIDIA + Intel + Security
Feeling more secure yet? If not, freshen up on further security skills by checking out these past blog articles:
Skilling snack: Windows passwordless options
New Windows 11 features strengthen security to address evolving cyberthreat landscape
If you have any ideas for future learning you’d like to see, or if you’d like to engage with your fellow developers, leave a comment below and look forward to our next skilling snack.
Continue the conversation. Find best practices. Bookmark the Windows Tech Community, then follow us @MSWindowsITPro on X/Twitter. Looking for support? Visit Windows on Microsoft Q&A.
Microsoft Tech Community – Latest Blogs –Read More
Setting outlook 2021 as default mail app
I would like to set outlook 2021 as my default mail app. When I try to do this with settings, it does not show this as an option. When I tried to point it to the executable, it actually went to New Outlook, not Outlook 2021 Any help would be appreciated.
I would like to set outlook 2021 as my default mail app. When I try to do this with settings, it does not show this as an option. When I tried to point it to the executable, it actually went to New Outlook, not Outlook 2021 Any help would be appreciated. Read More
Sharepoint edit formula condition based on 2 criteria
Hi,
After struggling with the formula syntax, I’ve finally figured out how to make it accepted by SharePoint. However, my issue now is that only the first part of the formula works but not correctly.
I’m attempting to achieve the following: If the Project Status is either ‘Blocked’ or ‘In progress delayed’, I want to display the reason field in my form.
Here’s my formula:
=if([$Deliverable_x0020_Status_x0020__] == ‘Blocked’ || ([$Deliverable_x0020_Status_x0020__]== ‘In Progress Delayed’, true, false)
When ‘Blocked’ is selected, the reason field is hidden, which should not happen. However, when ‘In progress delayed’ is selected, the reason field is shown, which is what I’m looking for. The issue arises when other choices are selected; the reason field is also shown, which shouldn’t be the case.
Any idea what’s is going on.
Hi, After struggling with the formula syntax, I’ve finally figured out how to make it accepted by SharePoint. However, my issue now is that only the first part of the formula works but not correctly.I’m attempting to achieve the following: If the Project Status is either ‘Blocked’ or ‘In progress delayed’, I want to display the reason field in my form.Here’s my formula: =if([$Deliverable_x0020_Status_x0020__] == ‘Blocked’ || ([$Deliverable_x0020_Status_x0020__]== ‘In Progress Delayed’, true, false) When ‘Blocked’ is selected, the reason field is hidden, which should not happen. However, when ‘In progress delayed’ is selected, the reason field is shown, which is what I’m looking for. The issue arises when other choices are selected; the reason field is also shown, which shouldn’t be the case. Any idea what’s is going on. Read More