Ejemplo n.º 1
0
    else:
        print_flushed("Starting ClusterBot...", slack=False)
        try:
            bot = ClusterBot()
        except Exception as exc:
            print(
                f"ERROR: ClusterBot failed to initialize correctly. Can't notify "
                f"slack. Here is the error:\n{exc}"
            )
            bot = None


#suppress_brian2_logs()
# Uncomment this to get brian2cuda logs
# (Set log_level_diagnostic() for DynamicConfigCreator diagnostic messages)
BrianLogger.log_level_debug()


# The configuration classes are defined in
# `brian2cuda/tests/features/cuda_configuration.py`
configurations = [
    # C++
    CPPStandaloneConfigurationSinglePrecision,
    CPPStandaloneConfigurationOpenMPMaxThreadsSinglePrecision,

    # Brian2CUDA
    ## number of partitions equal number of SMs on GPU (108 on A100 GPU)
    DynamicConfigCreator('CUDA standalone (single precision, max blocks, atomics)',
                         prefs={'core.default_float_dtype': float32}),

    ## 1 partition
Ejemplo n.º 2
0
def suppress_brian2_logs():
    '''
    Suppress all logs coming from brian2.
    '''
    BrianLogger.suppress_hierarchy('brian2.equations')
    # we want logs from brian2.devices.cuda_standalone
    BrianLogger.suppress_hierarchy('brian2.devices.cpp_standalone')
    BrianLogger.suppress_hierarchy('brian2.devices.device')
    BrianLogger.suppress_hierarchy('brian2.groups')
    BrianLogger.suppress_hierarchy('brian2.core')
    BrianLogger.suppress_hierarchy('brian2.synapses')
    BrianLogger.suppress_hierarchy('brian2.monitors')
    BrianLogger.suppress_hierarchy('brian2.input')
    BrianLogger.suppress_hierarchy('brian2.__init__')
    BrianLogger.suppress_hierarchy('brian2.spatialneuron')
    BrianLogger.suppress_hierarchy('brian2.stateupdater')
    BrianLogger.suppress_hierarchy('brian2.hears')
    # we want logs from brian2.codegen.cuda
    BrianLogger.suppress_hierarchy('brian2.codegen.codeobject')
    BrianLogger.suppress_hierarchy('brian2.codegen.runtime')
    BrianLogger.suppress_hierarchy('brian2.codegen.generators')
    # we want logs from brian2.codegen.generators.cuda_generator
    BrianLogger.suppress_hierarchy('brian2.codegen.generators.cpp_generator')
    BrianLogger.suppress_hierarchy('brian2.codegen.generators.numpy_generator')
    BrianLogger.suppress_hierarchy('brian2.codegen.generators.base')
Ejemplo n.º 3
0
    CUDAStandaloneConfigurationNoCudaOccupancyAPIProfileCPU,
    CUDAStandaloneConfiguration2BlocksPerSM,
    CUDAStandaloneConfiguration2BlocksPerSMLaunchBounds,
    CUDAStandaloneConfigurationSynLaunchBounds,
    CUDAStandaloneConfiguration2BlocksPerSMSynLaunchBounds,
    CUDAStandaloneConfigurationProfileGPU,
    CUDAStandaloneConfigurationProfileCPU)
from brian2cuda.tests.features.speed import *

from brian2genn.correctness_testing import GeNNConfiguration, GeNNConfigurationCPU, GeNNConfigurationOptimized

from create_readme import create_readme
from helpers import pickle_results, translate_pkl_to_csv

suppress_brian2_logs()
BrianLogger.log_level_diagnostic()

assert len(
    sys.argv) <= 2, 'Only one command line argument supported! Got {}'.format(
        len(sys.argv) - 1)
if len(sys.argv) == 2:
    additional_dir_name = '_' + sys.argv[1]
else:
    additional_dir_name = ''

prefs['devices.cpp_standalone.extra_make_args_unix'] = ['-j12']

# host specific settings
if socket.gethostname() == 'elnath':
    prefs['devices.cpp_standalone.extra_make_args_unix'] = ['-j24']
    prefs['codegen.cuda.extra_compile_args_nvcc'].remove('-arch=sm_35')
Ejemplo n.º 4
0
def run_in_process_with_logger(x):
    prefs.logging.delete_log_on_exit = False
    BrianLogger.initialize()
    logger.info(f"subprocess info message {x}")
    BrianLogger.file_handler.flush()
    return BrianLogger.tmp_log