Skip to content

Commit

Permalink
Update docker image options
Browse files Browse the repository at this point in the history
  • Loading branch information
hipudding authored and FFFrog committed May 31, 2024
1 parent 0846eb4 commit 03a3e96
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 59 deletions.
118 changes: 88 additions & 30 deletions _static/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,29 +24,82 @@ $(document).ready(function () {
return options;
}

$.get_docker_os_versions = function (options) {
var os_versions = {};
$.each(docker_images, function (idx, image) {
var tag = image.split(":")[1];
var tag_items = tag.split("-");
var npu_type = tag_items[1];

var os = tag_items[2];
var index = os.search(/\d/);
var os_type = os.substring(0, index);
var os_version = os.substring(index);

if (options['os'] == os_type && options['npu'] == npu_type) {
if (!os_versions[os_type]) {
os_versions[os_type] = new Set();
}
os_versions[os_type].add(os_version);
}
});
return os_versions;
}

$.get_docker_python_versions = function (options) {
var python_versions = new Set();
$.each(docker_images, function (idx, image) {
var tag = image.split(":")[1];
var tag_items = tag.split("-");
var npu_type = tag_items[1];

var os = tag_items[2];
var index = os.search(/\d/);
var os_type = os.substring(0, index);
var os_version = os.substring(index);
var python_version = tag_items[3].substring(2);

if (options['os'] == os_type && options['os_version'] == os_version && options['npu'] == npu_type) {
python_versions.add(python_version);
}

});
return python_versions;
}

$.update_os_verions = function () {
$("#row-os_version").find("div").not(":first").remove();
var options = $.get_options();
// update os_versions
var versions = os_versions[options['os']];
var version_length = versions.length;
for (var i = 0; i < version_length; i++) {
var version = versions[i];
$('#row-os_version').append('<div class="values-element block-' + version_length + ' install-os_version" id="os_version-' + version + '">' + version + '</div>');
var os_versions = $.get_docker_os_versions(options);
var selected_os_versions = os_versions[options['os']];
if (selected_os_versions == null) {
$('#row-os_version').append('<div class="values-element-disabled block-1 install-os_version" id="os_version-null" disabled>无可用版本</div>');
} else {
var version_length = selected_os_versions.size;
selected_os_versions.forEach(function (version) {
$('#row-os_version').append('<div class="values-element block-' + version_length + ' install-os_version" id="os_version-' + version + '">' + version + '</div>');
});
$("#row-os_version div:last-child").addClass("selected");
}
$("#row-os_version div:last-child").addClass("selected");
}

$.update_python_versions = function () {
$("#row-python_version").find("div").not(":first").remove();
// update python_versions
var versions = python_versions;
var version_length = versions.length;
for (var i = 0; i < version_length; i++) {
var version = versions[i];
$('#row-python_version').append('<div class="values-element block-' + version_length + ' install-python_version" id="python_version-' + version + '">' + version + '</div>');
var options = $.get_options();
var versions = $.get_docker_python_versions(options);
var version_length = versions.size;

if (version_length == 0) {
$('#row-python_version').append('<div class="values-element-disabled block-1 install-python_version" id="python_version-null" disabled>无可用版本</div>');
} else {
versions.forEach(function (version) {
$('#row-python_version').append('<div class="values-element block-' + version_length + ' install-python_version" id="python_version-' + version + '">' + version + '</div>');
});
$("#row-python_version div:last-child").addClass("selected");
}
$("#row-python_version div:last-child").addClass("selected");

}

$.change_options_visible = function () {
Expand All @@ -64,22 +117,11 @@ $(document).ready(function () {
}
}

$has_key = function (obj, path) {
const keys = path.split('|');
for (let key of keys) {
if (!obj || !obj.hasOwnProperty(key)) {
return false;
}
obj = obj[key];
}
return true;
}

$.update_cann_versions = function () {
// reset table.
var cann_version_select = $('#cann-version');
cann_version_select.empty();
cann_version_select.append(new Option("Select CANN Version", "na"));
cann_version_select.append(new Option("选择CANN的版本", "na"));
$.reset_selection(cann_version_select);
$('#driver-version').text("Driver");
$('#firmware-version').text("Firmware");
Expand All @@ -95,14 +137,19 @@ $(document).ready(function () {
} else {
$.each(package_info, function (key, value) {
// not all version has a docker image.
var find_key = options['npu'] + "|docker|" + options['os'] + "|" + options['os_version'] + "|" + options['python_version'];
if ($has_key(value, find_key)) {
cann_version_select.append(new Option("CANN: " + key, key));
var tag = key.toLowerCase() + "-" + options['npu'] + "-" + options['os'] + options['os_version'] + "-py" + options['python_version'];
for (var i = 0; i < docker_images.length; i++) {
if (docker_images[i].split(":")[1] == tag) {
cann_version_select.append(new Option("CANN: " + key, key));
break;
}
}
});
}
if (cann_version_select.children().length === 1) {
cann_version_select.children().first().text('无可用版本');
}
cann_version_select.trigger('change');

}

$.update_os_verions();
Expand All @@ -122,6 +169,12 @@ $(document).ready(function () {
// if os changed, update os version.
if (fields[0] == "os") {
$.update_os_verions();
$.update_python_versions();
}

// if os version changed, update python version.
if (fields[0] == "os_version") {
$.update_python_versions();
}

// if install type changed, update options visible.
Expand Down Expand Up @@ -212,8 +265,13 @@ $(document).ready(function () {
$('#use_docker_section').hide();
$('#install_cann_section').show();
} else {
var docker_image = package_info[options['cann']][options['npu']]['docker'][options['os']][options['os_version']][options['python_version']];
$('#use_docker').html('docker pull ' + docker_image);
var tag = options['cann'].toLowerCase() + "-" + options['npu'] + "-" + options['os'] + options['os_version'] + "-py" + options['python_version'];
for (var i = 0; i < docker_images.length; i++) {
if (docker_images[i].split(":")[1] == tag) {
$('#use_docker').html('docker pull ' + docker_images[i]);
break;
}
}
$('#install_cann_section').hide();
$('#use_docker_section').show();
}
Expand Down
9 changes: 9 additions & 0 deletions _static/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,15 @@
padding: 10px 24px;
cursor: pointer;
}

.values-element-disabled {
background-color: #F3F4F7;
color: black;
text-align: left;
margin: 2px;
padding: 10px 24px;
cursor: pointer;
}

.block-1 {
flex: 1 1 100%;
Expand Down
35 changes: 6 additions & 29 deletions _static/package_info.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,6 @@ const package_info = {
},
aarch64: {
driver_url: 'https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend HDK/Ascend HDK 23.0.3/Ascend-hdk-910b-npu-driver_23.0.3_linux-aarch64.run',
},
docker: {
ubuntu: {
'22.04': {
'3.8': 'dockerimage38',
'3.9': 'dockerimage39'
}
},
openeuler: {
'22.03': {
'3.8': 'dockerimage38',
'3.9': 'dockerimage39',
'3.10': 'dockerimage310'
}
}
}
},
'310p': {
Expand Down Expand Up @@ -382,19 +367,11 @@ const package_info = {
}
};

const os_versions = {
ubuntu: [
'20.04',
'22.04'
],
openeuler: [
'20.03',
'22.03'
]
};

const python_versions = [
'3.8',
'3.9',
'3.10'
const docker_images = [
'cosdt/cann:8.0.rc2.alpha002-910b-ubuntu22.04-py3.10',
'cosdt/cann:8.0.rc2.alpha002-910b-ubuntu20.04-py3.10',
'cosdt/cann:8.0.rc2.alpha002-910b-ubuntu20.04-py3.9',
'cosdt/cann:8.0.rc2.alpha002-910b-ubuntu20.04-py3.8',
'cosdt/cann:8.0.rc2.alpha002-910b-openeuler22.03-py3.10',
];

0 comments on commit 03a3e96

Please sign in to comment.