@@ -1,8 +1,7 @@ | |||||
# my | # my | ||||
log/* | |||||
*.log | *.log | ||||
*.swp | *.swp | ||||
.nfs* | |||||
.nfs* | |||||
core | core | ||||
*.jpg | *.jpg | ||||
*.JPEG | *.JPEG | ||||
@@ -26,12 +26,14 @@ import common.config as config | |||||
import annotation as annotation | import annotation as annotation | ||||
import luascript.starttaskscript as start_script | import luascript.starttaskscript as start_script | ||||
import logging | import logging | ||||
import common.select_gpu as gpu | |||||
logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s', | logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s', | ||||
level=logging.DEBUG) | level=logging.DEBUG) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
"""Automatic annotation algorithm entry.""" | """Automatic annotation algorithm entry.""" | ||||
gpu.select_gpu() | |||||
jsonData = config.loadJsonData(config.configPath) | jsonData = config.loadJsonData(config.configPath) | ||||
redisClient = f.getRedisConnection(jsonData["ip"], jsonData["port"], jsonData["database"], jsonData["password"]) | redisClient = f.getRedisConnection(jsonData["ip"], jsonData["port"], jsonData["database"], jsonData["password"]) | ||||
logging.info('init redis client %s', redisClient) | logging.info('init redis client %s', redisClient) | ||||
@@ -26,12 +26,14 @@ import common.RedisUtil as f | |||||
import common.config as config | import common.config as config | ||||
import luascript.starttaskscript as start_script | import luascript.starttaskscript as start_script | ||||
import logging | import logging | ||||
import common.select_gpu as gpu | |||||
logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s', | logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s', | ||||
level=logging.DEBUG) | level=logging.DEBUG) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
"""Imagenet algorithm entry.""" | """Imagenet algorithm entry.""" | ||||
gpu.select_gpu() | |||||
jsonData = config.loadJsonData(config.configPath) | jsonData = config.loadJsonData(config.configPath) | ||||
redisClient = f.getRedisConnection(jsonData["ip"], jsonData["port"], jsonData["database"], jsonData["password"]) | redisClient = f.getRedisConnection(jsonData["ip"], jsonData["port"], jsonData["database"], jsonData["password"]) | ||||
logging.info('init redis client %s', redisClient) | logging.info('init redis client %s', redisClient) | ||||
@@ -0,0 +1,41 @@ | |||||
""" | |||||
/** | |||||
* Copyright 2020 Zhejiang Lab. All Rights Reserved. | |||||
* | |||||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||||
* you may not use this file except in compliance with the License. | |||||
* You may obtain a copy of the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, | |||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
* See the License for the specific language governing permissions and | |||||
* limitations under the License. | |||||
* ============================================================= | |||||
*/ | |||||
""" | |||||
import os | |||||
import sys | |||||
import pynvml | |||||
import logging | |||||
pid = os.getpid() | |||||
pynvml.nvmlInit() | |||||
def select_gpu(): | |||||
deviceCount = pynvml.nvmlDeviceGetCount() | |||||
for i in range(deviceCount): | |||||
logging.info('-------------get GPU information--------------') | |||||
handle = pynvml.nvmlDeviceGetHandleByIndex(i) | |||||
logging.info("Device:%s %s", i, pynvml.nvmlDeviceGetName(handle)) | |||||
gpu_info = pynvml.nvmlDeviceGetMemoryInfo(handle) | |||||
logging.info('free:%s MB', gpu_info.free / (1000 * 1000)) | |||||
if gpu_info.free / (1000 * 1000) > 3072: | |||||
os.environ["CUDA_VISIBLE_DEVICES"] = str(i) | |||||
logging.info('use GPU:%s %s', i, pynvml.nvmlDeviceGetName(handle)) | |||||
return | |||||
logging.info('No GPU is currently available') | |||||
sys.exit() |